提交时间:2024-08-20 21:12:42

运行 ID: 172336

#include <stdio.h> char a[27]; char b[27] = {'0', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; int map[27] = {0}; int main(void) { int s, t, w; scanf("%d%d%d\n", &s, &t, &w); int temp = w + 1; int i = 0; char arr; while (temp--) { scanf("%c", &arr); if (arr == ' ') { temp++; continue; } ++i; a[i] = arr; } for (i = w; i >= 1; i--) { for (int j = 1; j <= t; j++) { if (a[i] - '0' == b[j] - '0') { map[i] = j; } } } map[w + 1] = t + 1; int count = 0; for (i = w; i >= 1;) { if (map[i] == t || map[i] + 1 == map[i + 1]) { --i; continue; } if (map[i] + 1 < map[i + 1]) { ++map[i]; for (int j = i; j < w; j++) { map[j + 1] = map[j] + 1; } for (int q = 1; q <= w; q++) { if (q < w) { printf("%c", b[map[q]]); } else { printf("%c\n", b[map[q]]); i = w; count++; if (count == 5) { return 0; } } } } } return 0; }