现在的位置: 首页 > 综合 > 正文

POJ 1026 Cipher

2012年09月01日 ⁄ 综合 ⁄ 共 728字 ⁄ 字号 评论关闭
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;
}

 加密问题。

每一位的加密是独立的,可以求得每一位的循环步数,用模值来模拟。

抱歉!评论已关闭.