您的位置:首页 > 其它

【贪心】取数游戏

2016-07-21 15:54 369 查看

【贪心】取数游戏

时间限制: 1 Sec 内存限制: 64 MB

题目描述

给出2n(n≤100)个自然数(小于等于30000)。将这2n个自然数排成一列,游戏双方A和B从中取数,只允许从两端取数。A先取,然后双方轮流取数。取完时,谁取得数字总和最大为取胜方;若双方和相等,属B胜。试问A方是否有必胜策略?

输入

共2行,第1行一个整数n;第2行有2*n个自然数。

输出

只有1行,若A有必胜策略,则输出“YES”,否则输出“NO”。

样例输入

4
7 9 3 6 4 2 5 3

样例输出

YES

思路:A先取一个数可以选择奇数的位置或者偶数的位置,如果取了奇数A就可以一直取奇数当A一直取奇数时B只能取偶数,如果取了偶数A就可以一直取偶数当A一直取偶数时B只能取奇数。
例如:7 9 3 6 4 2 5 3            A取第8个数B只能取第1或者7个数....


#include <iostream>

using namespace std;
int a;
int n;
int ji;
int ou;
int main()
{
while(cin>>n)
{
ji=ou=0;
for(int i=1;i<=2*n;i++)
{
cin>>a;
if(i%2==1)
ji+=a;
else
ou+=a;
}
if(ji!=ou)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: