Monday, May 4, 2015

UVa 11233 - Deli Deli

/* UVa 11233 - Deli Deli */

#include <stdio.h>
#include <string.h>

#define MaxLength 30

char irregular[21][2][MaxLength];

int main() {
	int l, n, i, j;
	scanf("%d %d", &l, &n);
	for (i = 0; i < l; i++)
		scanf("%s %s", irregular[i][0], irregular[i][1]);

	for (i = 0; i < n; i++) {
		char s[MaxLength];
		scanf("%s", s);
		int regular = 1;
		for (j = 0; j < l; j++) {
			if (strcmp(s, irregular[j][0]) == 0) {
				strcpy(s, irregular[j][1]);
				regular = 0;
				break;
			}
		}
		if (regular == 1) {
			int len = strlen(s);
			if (len > 1 && s[len - 1] == 'y' && s[len - 2] != 'a'
					&& s[len - 2] != 'e' && s[len - 2] != 'i'
					&& s[len - 2] != 'o' && s[len - 2] != 'u') {
				s[len - 1] = 'i';
				s[len] = 'e';
				s[len + 1] = 's';
				s[len + 2] = '\0';
			} else if (s[len - 1] == 'o' || s[len - 1] == 's'
					|| s[len - 1] == 'x'
					|| ((len > 1)
							&& ((s[len - 2] == 'c' && s[len - 1] == 'h')
									|| (s[len - 2] == 's' && s[len - 1] == 'h')))) {
				s[len] = 'e';
				s[len + 1] = 's';
				s[len + 2] = '\0';
			} else {
				s[len] = 's';
				s[len + 1] = '\0';
			}
		}
		printf("%s\n", s);

	}

	return 0;
}

No comments:

Post a Comment