B. Godsend

原创 2017年09月13日 22:05:47

time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

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?

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).

Examples
input
4
1 3 2 3
output
First
input
2
2 2
output
Second
Note

In first sample first player remove whole array in one move and win.

In second sample first player can't make a move and lose.


解题说明:本题是一道模拟题,有一个数组a,两个人玩游戏,游戏规则是第一个人可以拿走数组中的一个子数组并且子数组的和必须是奇数,第二个人可以拿走数组中的一个子数组并且子数组的和必须是偶数。两个人轮流拿,如果谁不能拿,那这个人就输了。如果两个人都采用最好的策略,最后谁赢?如果整个数组和为奇数,那么第一个人肯定赢。 
如果整个数组和为偶数,那么假设第一个人可以取出和为奇数,那么剩下的和还是奇数,所以还是第一个人赢,如果第一个人取不出来,那么第二个人赢。判断第一个人能不能取出来只需统计数组中是否存在奇数就可以。


// codeforece.cpp: 定义控制台应用程序的入口点。
//

#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;

int main()
{
	int n, odd, temp, i;
	scanf("%d", &n);
	odd = 0;

	while (n--)
	{
		scanf("%d", &temp);
		if (temp % 2 == 1)
		{
			odd = 1;
		}

	}
	if (odd == 0)
	{
		printf("Second\n");
	}
	else
	{
		printf("First\n");
	}
	return 0;
}


版权声明:

相关文章推荐

A. Buying A House

time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

ZYBO 部署petalinux(一)

今天周六,petalinux的安装包和yocto的虚拟机vdi文件都已经下载完毕可以使用了。由于yocto只有zedboard的配置暂时没有ZYBO,而xilinx官网上petaliunx是有ZYBO...

Zedboard & Zynq 图像采集 视频开发 (一) 硬件平台搭建

z

zedboard7000移植linux(1)--petalinux和vivado下载和安装

最近在做一个嵌入式开发的项目,刚刚在zedboard 7000的板子上搭好linux平台,回过来整理下资料。 首先要下载petalinux和vivado可从维基百科上找到官方下载地址。 http://...

【ZYNQ-7000开发之三】ZYNQ平台的HDMI驱动测试

高清显示是ZYNQ的一大特色,显示有利于观察数字图像处理的输出和人际交互。在本篇文章中,将在Xilinx ZYNQ平台上对HDMI进行测试,参考ADI的官方Demo。 这个Demo涉及到vivado自...
  • RZJMPB
  • RZJMPB
  • 2015-12-08 00:57
  • 5835

Zynq-Linux移植学习笔记之12-gpio驱动配置

1、  硬件配置 要启用GPIO,首先需要硬件支持,在vivado下进行zynq内GPIO控制器的配置。 上图是在Zynq中启用GPIO控制器 上图为配置GPIO引脚,通...

利用word2vec对关键词进行聚类

继上次提取关键词之后,项目组长又要求我对关键词进行聚类。说实话,我不太明白对关键词聚类跟新闻推荐有什么联系,不过他说什么我照做就是了。 按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)