题目不难,直接上代码。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cctype>
#include <string>
using namespace std;
char x[] = "AUEOI";
char y[] = "JSBKTCLDMVNWFXGPYHQZR";
int main()
{
int n;
cin >> n;
for(int i = 0 ; i < n ; ++i)
{
int m;
cin >> m;
cout << "Case " << (i+1) << ": " ;
int cur1 = 0 , cur2 = 0;
char buffer_a[220];
char buffer_b[220];
int p = (((m+1)/2) + 20) / 21;
int q = ((m / 2) + 4) / 5;
for(int j = 0 ; j < p-1 ; ++j)
{
memset(buffer_a + j * 21 , x[j] , 21);
}
int r1 = (m+1) / 2 - (p-1) * 21;
memset(buffer_a + (p-1) * 21 , x[p-1] , r1 );
for(int j = 0 ; j < q - 1 ; ++j)
{
memset(buffer_b + j * 5 , y[j] , 5);
}
int r2 = m / 2 - (q-1) * 5;
if(q) memset(buffer_b + (q-1) * 5 , y[q-1] , r2 );
sort(buffer_a , buffer_a + (m+1)/2);
sort(buffer_b , buffer_b + m/2);
for(int j = 1 ; j <= m ; ++j)
{
if(j%2) cout << buffer_a[cur1++];
else cout << buffer_b[cur2++];
}
cout << endl;
}
return 0;
}