本题的主题思想是贪心算法。我们可以这样认为:将数量最大的一组A试卷放到桌子上,后续所有的组(B=sum(others))批改这些试卷。并将后续所有组(B)的卷子添加到桌子上。如果数量最大的组A的同学批改卷子时,批改到自己的卷子:说明卷子(A组的试卷)没有被B完全替换掉,进而说明B数量没有A的多。所以,有下列编码:
#include "stdafx.h"
#include <algorithm>
#include <list>
#include <numeric>
#include <iostream>
#include <vector>
#include <functional>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
while (true)
{
int group_num,input;
cin>>group_num;
vector<int> group_stu;
int store=0;
int iterator_1;
for (iterator_1 = 0; iterator_1 < group_num; iterator_1++)
{
cin>>input;
group_stu.push_back(input);
}
sort(group_stu.begin(),group_stu.end(),greater<int>());
store = accumulate(group_stu.begin(),group_stu.end(),0);
if(*(group_stu.begin())<store/2)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
system("pause");
return 0;
}