#include <stdio.h> int one, zero; char str[1000000]; bool check(int ones, int zeros) { if (ones < 0 || zeros < 0) return false; if (ones + zeros == 0) return true; return (8 * ones >= 3 * (ones + zeros)) && (6 * (ones + zeros) >= 8 * ones); } int main(void) { char l[5] = "aeuo"; int dn[4] = {3,4,5,6}; int dz[4] = {5,4,3,2}; scanf("%*d%s", str); for (int i = 0; str[i]; i++) if (str[i] == '1') one++; else zero++; if (!check(one, zero)) printf("NIE\n"); else { while (one > 0) for (int i = 0; i < 4; i++) if (check(one - dn[i], zero - dz[i])) { printf("%c", l[i]); one -= dn[i]; zero -= dz[i]; } printf("\n"); } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include <stdio.h> int one, zero; char str[1000000]; bool check(int ones, int zeros) { if (ones < 0 || zeros < 0) return false; if (ones + zeros == 0) return true; return (8 * ones >= 3 * (ones + zeros)) && (6 * (ones + zeros) >= 8 * ones); } int main(void) { char l[5] = "aeuo"; int dn[4] = {3,4,5,6}; int dz[4] = {5,4,3,2}; scanf("%*d%s", str); for (int i = 0; str[i]; i++) if (str[i] == '1') one++; else zero++; if (!check(one, zero)) printf("NIE\n"); else { while (one > 0) for (int i = 0; i < 4; i++) if (check(one - dn[i], zero - dz[i])) { printf("%c", l[i]); one -= dn[i]; zero -= dz[i]; } printf("\n"); } return 0; } |