AGC014 A - Cookie Exchanges(模拟)

题意:

在这里插入图片描述

解法:

设S=A+B+C,
显然随着操作轮次的不断增加,最后三个数会向S/3逼近,
每轮操作,差值似乎会至少减小一半,那么最多模拟log次就能得出结果.

code:

#include <bits/stdc++.h>
#define int long long
#define PI pair<int,int>
using namespace std;
const int maxm=2e6+5;


void solve(){
    
    
    int a,b,c;cin>>a>>b>>c;
    int s=a+b+c;
    int ans=0;
    while(1){
    
    
        if(a%2||b%2||c%2){
    
    
            cout<<ans<<endl;
            return ;
        }
        if(a==b&&b==c){
    
    //无解
            cout<<-1<<endl;
            return ;
        }
        ans++;
        a=(s-a)/2;
        b=(s-b)/2;
        c=(s-c)/2;
    }
}
signed main(){
    
    
    ios::sync_with_stdio(0);
    solve();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44178736/article/details/114888687
今日推荐