Codeforces Round #429 (Div. 2):B. Godsend
題目:
Leha somehow found an array consisting of n integers. Looking at it, he came up with a task. Two players play the game on the array. Players move one by one. The first player can choose for his move a subsegment of non-zero length with an odd sum of numbers and remove it from the array, after that the remaining parts are glued together into one array and the game continues. The second player can choose a subsegment of non-zero length with an even sum and remove it. Loses the one who can not make a move. Who will win if both play optimally?
InputFirst 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).
OutputOutput answer in single line. "First", if first player wins, and "Second" otherwise (without quotes).
Examples Input 4 1 3 2 3 Output First Input 2 2 2 Output Second NoteIn first sample first player remove whole array in one move and win.
In second sample first player can't make a move and lose.
題意:給出一個數組,有兩個人玩游戲,游戲規則:第一個人選取連續的子區間并且區間的和為奇數,第二個人選取連續的子區間并且區間和為偶數。當有人不能選擇這樣的一個區間時,那么這個人就輸了,問那個人會贏?思路:思維題。容易看出,當存在一個奇數的時候第一個人會贏,否則第二個人會贏。另奇數的個數為x,當x為偶數時,第一個人只需選取最后一個奇數前的區間,那么無論第二個人怎么選都會存在和為奇數的區間;當x為奇數時,此時整個數組的和為奇數滿足條件,第一個人直接選擇整個數組~
code:
#include<bits/stdc++.h> using namespace std; int a[1000005]; int main() {int n,i,x;while(~scanf("%d",&n)){x=0;for(i=0;i<n;i++){scanf("%d",&a[i]);if(a[i]%2) x++;}if(x) puts("First");else puts("Second");}return 0; }
總結
以上是生活随笔為你收集整理的Codeforces Round #429 (Div. 2):B. Godsend的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 骨传导耳机好用吗?骨传导耳机原理是什么?
- 下一篇: 车辆协同定位论文review