zoukankan      html  css  js  c++  java
  • Atcoder 2373 Cookie Exchanges

    Problem Statement

     

    Takahashi, Aoki and Snuke love cookies. They have AB and C cookies, respectively. Now, they will exchange those cookies by repeating the action below:

    • Each person simultaneously divides his cookies in half and gives one half to each of the other two persons.

    This action will be repeated until there is a person with odd number of cookies in hand.

    How many times will they repeat this action? Note that the answer may not be finite.

    Constraints

     

    • 1≤A,B,C≤109

    Input

     

    Input is given from Standard Input in the following format:

    A B C
    

    Output

     

    Print the number of times the action will be performed by the three people, if this number is finite. If it is infinite, print -1 instead.

    Sample Input 1

     

    4 12 20
    

    Sample Output 1

     

    3
    

    Initially, Takahashi, Aoki and Snuke have 412 and 20 cookies. Then,

    • After the first action, they have 1612 and 8.
    • After the second action, they have 1012 and 14.
    • After the third action, they have 1312 and 11.

    Now, Takahashi and Snuke have odd number of cookies, and therefore the answer is 3.

    Sample Input 2

     

    14 14 14
    

    Sample Output 2

     

    -1
    

    Sample Input 3

     

    454 414 444
    

    Sample Output 3

     

    1


    a==b==c的时候会死循环,其他情况暴力算就行了,因为每一次操作之后最大值-最小值会减半,所以不久就能到达终止条件。

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    int A,B,C,tot,a,b,c;
    int main(){
    	scanf("%d%d%d",&A,&B,&C);
    	while(!((A&1)||(B&1)||(C&1))){
    		if(A==B&&B==C){
    			puts("-1");
    			return 0;
    		}
    		
    		tot++,a=(B+C)>>1,b=(A+C)>>1,c=(B+A)>>1;
    		A=a,B=b,C=c; 
    	}
    	
    	printf("%d
    ",tot);
    	return 0;
    }
    

      

     
  • 相关阅读:
    EOJ 2743 Stock Exchange
    POJ-3468 A Simple Problem with Integers
    EOJ-1104 bitmap
    【转】旋转卡壳——凸多边形间对踵点对(定义)
    Ring 3层枚举进程的四种方法
    XX-Net项目,免费浏览谷歌的伟大项目
    浅析Java中的内存机制
    Ubuntu下eclipse中安装Scala插件
    注入(5)---导入表注入(HookINT)
    Linux下MySQL导入文件出错ERROR 1290 (HY000)
  • 原文地址:https://www.cnblogs.com/JYYHH/p/8781615.html
Copyright © 2011-2022 走看看