考えられる投票者数の最大最小を見る。
class ElectionFraudDiv2 {
public:
string IsFraudulent(vector <int> P)
{
const int N = 10000;
int mn = 0;
int mx = 0;
for (int i = 0; i < (int)P.size(); ++i) {
mx += P[i] * 100 + 49;
if (P[i]) mn += P[i] * 100 - 50;
}
if (mn <= N && N <= mx) return "NO";
return "YES";
}
};