https://vjudge.net/problem/HDU-1205
恩….不算太难…但是脑子诡异的短路了一发
思路差不多是数目最多的糖果先摆着,然后如果剩下的可以插空插满,就是成立的 不可以插满的话就是不成立,对于测试数据是4 2 1 3个糖果先摆上 然后剩下的三个插在4个的中间就可以了 。所以是剩下的大于等于最大值减一……就在这个地方诡异的短路了、一开始以为是大于最大值加一才成立
#include<iostream>
using namespace std;
int a[1000010];
int main()
{
int T;
cin >> T;
while(T--)
{
int N;
cin >> N;
int maxn = 0;
long long temp = 0;
for(int i = 0 ; i < N ; i++)
{
cin >> a[i];
maxn = max(a[i],maxn);
temp += a[i];
}
temp-=maxn;//是除了最多的糖果剩下的糖果的总和
temp>=maxn-1?cout<<"Yes"<<endl:cout<<"No"<<endl;
}
r