G - Godsend CodeForces - 841B
網(wǎng)址:https://cn.vjudge.net/contest/236128#problem/G
給定一個n個整數(shù)的序列,兩個玩家玩游戲,輪流進(jìn)行操作(從第一個玩家開始),第一個玩家移除的數(shù)之和必須為奇數(shù),第二個玩家移除的數(shù)之和必須為偶數(shù),誰能最后移除完整個序列,那么誰贏。
Input
First line of input data contains single integer?n?(1?≤?n?≤?106) — length of the array.
Next line contains?n?integers?a1,?a2,?...,?an?(0?≤?ai?≤?109).
Output
Output answer in single line. "First", if first player wins, and "Second" otherwise (without quotes).
Example
Input
4解析:
如果輸入的數(shù)和為奇數(shù),則玩家1贏,如果是偶數(shù),則看輸入的數(shù)是否有奇數(shù),如果有奇數(shù),則玩家1贏,反之玩家二贏;
因為當(dāng)和為偶數(shù)時,如果有奇數(shù),則必定有偶數(shù)個,玩家1第一次取走一部分,剩下的還有奇數(shù),且剩下的和為奇數(shù),玩家2再取走一部分,身下的和肯定為奇數(shù),此時玩家1可以全部取走,所以玩家1贏;
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int M=1e6+10; int a[M]; int main() {ll n;scanf("%lld",&n);ll sum=0,k=0;for(int i=0;i<n;i++){scanf("%lld",&a[i]);sum+=a[i];if(a[i]%2==1) k++; } if(sum%2==1) printf("First\n");if(sum%2==0){//和為偶數(shù) if(k>=2) printf("First\n");//偶數(shù)個奇數(shù) else printf("Second\n");} return 0; } 1 3 2 3Output
FirstInput
2 2 2Output
SecondNote
在第一個樣例中,第一個玩家第一次就可以一次性把所有的數(shù)移除(因為所有數(shù)之和為奇數(shù)),所有第一個玩家贏;在第二個樣例中,第一個玩家無法進(jìn)行操作,跳過,第二個玩家可以一次全部移除,所以第二個玩家贏。
?
總結(jié)
以上是生活随笔為你收集整理的G - Godsend CodeForces - 841B的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是 AOP
- 下一篇: 手把手教你使用pytorch实现双向LS