记录编号 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;
}