Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 31689 Accepted Submission(s): 9011
分析:
不能达到目的只有最后情况存在有一个多余1的一个数。至此, 可以算所有数总值, 总值与所有数中最大的值比较, 若是总值+1 小于 两倍最大值, 即不符合情况。
code:
#include <cstdio> using namespace std; const int all = (1e6)+5; int con[ all ], t, max, num; long long sum; int main(void) { scanf( "%d", &t ); while( t -- ){ scanf( "%d", &num ); for( int i=0; i < num; ++ i ){ scanf( "%d", con+i ); } sum = max = con[0]; for( int i=1; i < num; ++ i ){ sum += con[i]; max = max > con[i] ? max : con[i]; } if( max+max <= sum + 1 ){ puts( "Yes" ); } else{ puts( "No" ); } } return 0; }
原文:http://www.cnblogs.com/seana/p/5256377.html