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