#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; } |
English