想法题
如果数的和为奇数 那么first直接全部拿走
如果数的和为偶数,分两种情况:
1.如果每个数都是偶数 那么first无法拿走任何数 second赢
2.如果存在奇数(肯定是偶数个):
①如果某个奇数在第一个位置或者在最后一个位置
例如3...5...7...1...(省略号部分为偶数,可以一个可以多个也可以没有)
那么first拿上面这个序列的时候 就可以除了3全部拿走 所以first赢
②如果奇数都不在第一个或者最后一个位置
...3...5...7...9... first可以拿得只剩下9...或者...3 无论second怎么拿sum为偶数的序列 再轮到first时first总可以把所有数都拿走
所以如果存在奇数的情况first恒赢
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<stack>
#include<queue>
#include<cmath>
#include<stack>
#include<list>
#include<map>
#include<set>
typedef long long ll;
using namespace std;
int a[1000005];
int main()
{
int i,n;
scanf("%d",&n);
int odd=0,even=0;ll sum=0;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
if(a[i]&1)
{
odd++;
}
else even++;
}
if(sum&1)
{
printf("First");
return 0;
}
if(odd==0)
{
printf("Second");
return 0;
}
printf("First");
return 0;
}