Game of Ball Passing

#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e6+10;
int a[N];
int main()
{
	int t;
	cin>> t;
	while(t--)
	{
		int n;
		cin>> n;
		long long sum=0;
		bool x=true;
		for(int i=0;i<n;i++)
		{
			cin>>a[i];
			if(a[i]!=0)x=false;
			sum+=a[i];
		}
		sort(a,a+n);
		sum-=a[n-1];
		if(x){
			cout<<0<<endl;
			continue;
		}
		else if(a[n-1]-1-sum>0)
		{
			cout<<(a[n-1]-sum)<<endl;
		}
		else cout<<1<<endl;
	}
}
将每人的传球次数视作每个人的使用机会 ,使用机会来串成几串,每串的最后一位不占使用次数
那么怎么串才能得到最小的串数呢?要得到最小的串数,就要把每个串尽可能的延长。如果要尽
可能的将串延长,就要看使用次数最多的有几个空位。如果空位数少于其他人的使用次数总和,
那就说明一条串就足够了,因为空位中可以塞不止一个人。如果空位数大于其他人的使用次数总
和,就说明一条串不够用,还需a[n-1]-sum-1个串。
全部评论

相关推荐

07-15 11:35
门头沟学院 Java
心里踏实多了,可以安心准备论文了
看不见我ffgh:牛哇佬,要不要来试一试pdd,部门氛围很好
京东开奖153人在聊
点赞 评论 收藏
分享
zzzzhz:兄弟你先猛猛投简历至少三百家,能约到面试就去面。最近可以速成智能小车,智慧家居烂大街的项目,不需要自己写,只需要把里面的代码讲解看明白就行。把其中涉及到的八股文都拿出来单独背一下,我去年找工作就一个智能小车智慧家居找了10k差不多。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务