注意:要在keep the vowel and consonant value minimum的基础上,再进行按字典序排序。
Code:
#include<stdio.h>
#include<algorithm>
using namespace std;
char con[22]="JSBKTCLDMVNWFXGPYHQZR";
char vow[6]="AUEOI";
char odd[150],even[150];
int main()
{
int N;
scanf("%d",&N);
for(int i=1;i<=N;i++){
int len;
scanf("%d",&len);
int x=0,y=0,od=0,ev=0,a=0,b=0;
for(int j=1;j<=len;j++){
if(j%2){
odd[a++]=vow[x];
od++;
if(od==21){ od=0; x++; }
}
else{
even[b++]=con[y];
ev++;
if(ev==5){ ev=0; y++; }
}
}
sort(odd,odd+a);
sort(even,even+b);
printf("Case %d: ",i);
a=b=0;
for(int j=1;j<=len;j++){
if(j%2)
printf("%c",odd[a++]);
else
printf("%c",even[b++]);
}
printf("\n");
}
return 0;
}
--------------------------------------------------------------------------------------------
Keep It Simple,Stupid!
--------------------------------------------------------------------------------------------