题意:奇数位置放元音字母,偶数位置放辅音字母,每个元音字母使用不超过21次,辅音不超过5次
思路:将元音字母和辅音字母分开两个数组,然后进行排序,之后在交错输出
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define N 250 const char x[] = "AUEOI"; const char y[] = "JSBKTCLDMVNWFXGPYHQZR"; int main(){ int cas, n, d = 1; char p[N], q[N]; scanf("%d", &cas); while(cas--){ memset(p, 0, sizeof(p)); memset(q, 0, sizeof(q)); scanf("%d", &n); int dx = (n + 1) / 2; int dy = n / 2; for(int i = 0; i < dx; i++){ p[i] = x[i / 21]; if (i < dy) q[i] = y[i / 5]; } p[dx] = '\0'; q[dy] = '\0'; sort(p, p + dx); sort(q, q + dy); printf("Case %d: ", d++); for(int i = 0; i < dx; i++){ printf("%c", p[i]); if (i < dy) printf("%c", q[i]); } printf("\n"); } return 0; }