| 记录编号 |
427158 |
评测结果 |
AAAWWWWWWW |
| 题目名称 |
2674.[ZJOI 2009]硬币游戏 |
最终得分 |
30 |
| 用户昵称 |
J_william |
是否通过 |
未通过 |
| 代码语言 |
C++ |
运行时间 |
0.279 s |
| 提交时间 |
2017-07-20 18:48:06 |
内存使用 |
1.81 MiB |
显示代码纯文本
#include<cstdio>
const int maxn=2e5+10;
int n,l,r;
long long k;
int a[maxn],b[maxn];
int main(){
freopen("zjoi09coins.in","r",stdin);
freopen("zjoi09coins.out","w",stdout);
scanf("%d%lld",&n,&k);
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;
while(l<=0) l+=n<<1;
for(int i=1;i<=n<<1;i++){
while(l>n<<1) l-=n<<1;
while(r>n<<1) r-=n<<1;
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<=n<<1;i++) printf("%d ",b[i]);
return 0;
}