UVA10785

题意:奇数位置放元音字母,偶数位置放辅音字母,每个元音字母使用不超过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;
}



你可能感兴趣的:(UVA10785)