题目地址:http://codeforces.com/problemset/problem/348/A
思路:将问题集中在裁判上,每轮都有一人当裁判,设进行k轮,则k*n-sum>=k,sum为每个人想玩游戏轮数之和,二分答案即可。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
int n;
LL sum=0;
int main()
{
LL maxx=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
LL x;
scanf("%I64d",&x);
sum+=x;
maxx=max(maxx,x);
}
LL l=maxx,r=n*maxx;
while(l<r)
{
LL mid=(l+r)/2;
if(mid*n-sum>=mid) r=mid;
else l=mid+1;
}
printf("%I64d\n",r);
return 0;
}