记录编号 427176 评测结果 AAAAAAAAAA
题目名称 [ZJOI 2009]硬币游戏 最终得分 100
用户昵称 GravatarJ_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;
}