取模运算在数组内循环解密,否则会MLE
#include<stdio.h> char cm[210],cn[1000010]; int main() { int i,j,s1,s2,n,m,l,k; scanf("%d%d%d%d%s%s",&n,&m,&l,&k,cm,cn); for(i=(n-1+l)%n,s1=0;s1<k;s1++,i=(i+l)%n) for(j=(i-m+1+n)%n,s2=0;s2<m;s2++,j=(j+1)%n) { if(cn[j]=='0') cn[j]=cm[s2]; else cn[j]=1-(cm[s2]-'0')+'0'; } for(i=(k*l)%n,s1=0;s1<n;s1++,i=(i+1)%n) putchar(cn[i]); return 0; }