⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1634.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 1634 on 2005-11-06 at 19:22:19 */ 
#include <cstdio>
#include <cstring>

const int L_MAX = 128;

class Group {
public:
	int n;
	int p[L_MAX];
};

int group(char);

int main()
{
	int k[3], n;
	char line[L_MAX], word[L_MAX];
	Group g[3];
	int i, j;
	
	while(scanf("%d %d %d", &k[0], &k[1], &k[2]) == 3) {
		if(k[0] == 0 && k[1] == 0 && k[2] == 0) {
			return 0;
		} else {
			getchar();
			g[2].n = g[1].n = g[0].n = 0;
			gets(line);
			for(i = 0; line[i] != 0; i++) {
				n = group(line[i]);
				g[n].p[g[n].n++] = i;
			}
			memset(word, 0, sizeof(word));
			for(i = 0; i < 3; i++) {
				if(g[i].n != 0) {
					while(k[i] < 0) {
						k[i] += g[i].n;
					}
					k[i] %= g[i].n;
					for(j = 0; j < g[i].n; j++) {
						n = g[i].p[(j+k[i])%g[i].n];
						word[n] = line[g[i].p[j]];
					}
				}
			}
			printf("%s\n", word);
		}
	}
	
	return 0;
}

int group(char c)
{
	if(c >= 'a' && c <= 'i') {
		return 0;
	} else if(c >= 'j' && c <= 'r') {
		return 1;
	} else {
		return 2;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -