CF348A Mafia(二分答案)
CF348A Mafia
题意:
有\(n\)个人在玩游戏“黑手党”,这个游戏规则是每局必须有一个主持,\((n-1)\)名选手。其中第\(i\)个人表示想玩\(a_i\)局游戏且不当主持,让求出满足每人要求的最少的局数。
思路:
考虑二分最少的局数,假设局数为\(x\)。
可以满足每个选手需求的条件为:\(\sum{a_i} \le (x*(n-1))\)
二分时check这个式子即可。
ps:二分的上下界必须严格取好,不然WA掉。
Code:
ll n;
ll q[N];
int op[N],p[N],t[N];
int main(){
cin>>n;
ll sum=0;
ll maxx=-1;
rep(i,1,n){
cin>>q[i];//每个人想玩q[i]局
sum+=q[i];
maxx=max(maxx,q[i]);
}
ll l=maxx,r=sum;ll ans=0;//上下界
while(l<=r){
ll mid=(l+r)/2;
if(mid*(n-1)>=sum){
r=mid-1;
ans=mid;
}
else l=mid+1;
}
//cout<<r<<endl;
cout<<ans<<endl;
return 0;
}