记录编号 |
427176 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[ZJOI 2009]硬币游戏 |
最终得分 |
100 |
用户昵称 |
J_william |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
1.039 s |
提交时间 |
2017-07-20 19:20:28 |
内存使用 |
1.84 MiB |
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;
const int maxn=2e5+10;
int n,m;
long long k,l,r;
int a[maxn],b[maxn];
int main(){
freopen("zjoi09coins.in","r",stdin);
freopen("zjoi09coins.out","w",stdout);
scanf("%d%lld",&n,&k),m=n<<1;
for(int i=1;i<=n;i++) scanf("%d",&b[i*2-1]);
while(k){
for(int i=1;i<=n<<1;i++) a[i]=b[i];
int i=0;
long long j=1;
for(i;j<=k;j<<=1);
j>>=1,k-=j;
l=1-j,r=1+j;
for(int i=1;i<=m;i++){
l=l%m+m,l=l%m,r=r%m;
if(!a[l]) b[i]=0;
else if(a[l]==a[r]) b[i]=1;
else b[i]=2;
l++,r++;
}
}
for(int i=1;i<=m;i++){
printf("%d",b[i]);
if(i!=m) putchar(' ');
else putchar('\n');
}
return 0;
}