二分 20分,求调
查看原帖
二分 20分,求调
1429782
hychouyichen楼主2024/10/5 16:35
#include<bits/stdc++.h>
using namespace std;
long long a,b,c;
bool check(int x){
	for(long long i=1;i<=x;i++){
		if(a<i||b<i){
			return false;
		}
		a-=i;
		b-=i;
	}
	return true;
}
int main(){
	cin>>a>>b>>c;
	if(a>b){
		if(c<abs(a-b)){
			b+=c; 
		}else{
			c-=abs(a-b);
			b=a;
			b+=c/2;
			a+=c/2;
		}
	}else if(a<b){
		if(c<abs(a-b)){
			a+=c; 
		}else{
			c-=abs(a-b);
			a=b;
			b+=c/2;
			a+=c/2;
		}
	}else{
		b+=c/2;
		a+=c/2;
	}
	long long l=1,r=1e9;
	long long ans=0;
	while(l<=r){
		long long mid=(l+r)/2;
		if(check(mid)){
			l=mid+1;
			ans=mid;
		}else{
			r=mid-1;
		}
	}
	cout<<ans;
}
2024/10/5 16:35
加载中...