C - Spider Man CodeForces - 705B

Description

现在有一个关于数字的游戏,初始时有一些数。一次操作可以将一个大小为 x(x>1) 的数拆为两个大小为 x-p 和 p 的数,p 的值由玩家任选的小于k的正整数。现在两人轮流操作,将数字不断的分解,先不能操作的玩家失败,问先手必胜还是后手必胜。

游戏分为很多轮。每一轮,裁判都会在上一轮的基础上新增加一个数字,然后询问先手是否必胜。

Input

第一行包含一个整数 n (1 ≤ n ≤ 100 000) — 表示轮数。

第二行包含 n 个用空格隔开的整数 a1, a2, …, an (1 ≤ ai ≤ 109),表示每一轮新加入的数字。

Output

输出 n 行。如果先手必胜输出 1 否则输出 2。

Example

Input
3
1 2 3
Output
2
1
1
Input
5
1 1 5 1 1
Output
2
2
2
2
2

Note

在第一个样例中,
初始只有一个数1,显然后手赢。之后两个数1和2,先手把2拆成1和1,先手赢。输入第三个数时,先手可以先把3拆成2和1,剩下两个2,不管后手拆哪个都是先手赢。

#include<bits/stdc++.h>
using namespace std;
int main()
{

   int n,i;
   int a[120000];
   int sum=0;
   scanf("%d",&n);
   for(i=1;i<=n;i++)
   {
     scanf("%d",&a[i]);
     sum+=a[i]-1; //一个数可以拆分的次数,是这个数的减一次
   if(sum%2==0)  printf("2\n");   //看可以拆分的次数,
     else printf("1\n");
   }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值