Run ID | User | Problem | Result | Memory | Time | Language | Code Length | Submit Time |
7539261 | kingpro | 1026 | Accepted | 168K | 63MS | C++ | 721B | 2010-08-27 00:33:51 |
#include <stdio.h> int main() { int num[200], cyc[200], n=0, i=0, cnt=0, k=0; char ch[201], cht[201]={0}; while(scanf("%d", &n), n!=0) { for(i=0; i<n && (scanf("%d", &num[i]), true); i++); for(i=0; i<n && (k=i, true); i++) for(int j=0; j<=n && (k=num[k]-1, k==i ? (cyc[i]=j+1, false) : true); j++); while(scanf("%d", &cnt), cnt!=0) { for(i=0; (i<n && (ch[i]=' ', true)) || (getchar(), gets(ch), false); i++); for(i=n-1; i>0 && (ch[i]==0 ? (ch[i]=' ', false) : true); i--); for(i=0; (i<n && (k=i, true)) || (cht[i]=0, printf("%s\n", cht), false); i++) for(int j=0, c=cnt%cyc[i]; (j<c && (k=num[k]-1, true)) || (cht[k]=ch[i], false); j++); } putchar('\n'); } return 0; }
加密问题。
每一位的加密是独立的,可以求得每一位的循环步数,用模值来模拟。