#include <bits/stdc++.h> using namespace std; int main() { int n; string b; cin >> n >> b; int n1 = 0; int n0 = 0; for (int i = 0; i < 8 * n; i++) if (b[i] == '1') n1++; else n0++; string w = ""; bool czy = true; while (czy) { czy = false; if (n >= 1 && n1 >= 3 * n0 && n0>=2 && n1>=6) { w += "o"; n0 -= 2; n1 -= 6; n--; czy = true; } else if (n >= 2 && 5 * n1 >= 11 * n0 && n0>=5 && n1>=11) { w += "go"; n0 -= 5; n1 -= 11; n -= 2; czy = true; } else if (n >= 1 && 3 * n1 >= 5 * n0 && n0>=3 && n1>=5) { w += "g"; n0 -= 3; n1 -= 5; n--; czy = true; } else if (n >= 3 && 5 * n1 >= 7 * n0 && n0>=10 && n1>=14) { w += "ago"; n0 -= 10; n1 -= 14; n -= 3; czy = true; } else if (n >= 2 && 7 * n1 >= 9 * n0 && n0>=7 && n1>=9) { w += "ao"; n0 -= 7; n1 -= 9; n -= 2; czy = true; } else if (n >= 3 && 11 * n1 >= 13 * n0 && n0>=11 && n1>=13) { w += "aco"; n0 -= 11; n1 -= 13; n -= 3; czy = true; } else if (n >= 1 && n1 >= n0 && n0>=4 && n1>=4) { w += "c"; n0 -= 4; n1 -= 4; n -= 1; czy = true; } else if (n >= 2 && 9 * n1 >= 7 * n0 && n0>=9 && n1>=7) { w += "ac"; n0 -= 9; n1 -= 7; n -= 2; czy = true; } else if (n >= 1 && 5 * n1 >= 3 * n0 && n0>=5 && n1>=3) { w += "a"; n0 -= 5; n1 -= 3; n -= 1; czy = true; } } //cout<<n1<<" "<<n0<<"\n"; if (n == 0 && n0 == 0 && n1 == 0) cout << w; else cout << "NIE"; 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | #include <bits/stdc++.h> using namespace std; int main() { int n; string b; cin >> n >> b; int n1 = 0; int n0 = 0; for (int i = 0; i < 8 * n; i++) if (b[i] == '1') n1++; else n0++; string w = ""; bool czy = true; while (czy) { czy = false; if (n >= 1 && n1 >= 3 * n0 && n0>=2 && n1>=6) { w += "o"; n0 -= 2; n1 -= 6; n--; czy = true; } else if (n >= 2 && 5 * n1 >= 11 * n0 && n0>=5 && n1>=11) { w += "go"; n0 -= 5; n1 -= 11; n -= 2; czy = true; } else if (n >= 1 && 3 * n1 >= 5 * n0 && n0>=3 && n1>=5) { w += "g"; n0 -= 3; n1 -= 5; n--; czy = true; } else if (n >= 3 && 5 * n1 >= 7 * n0 && n0>=10 && n1>=14) { w += "ago"; n0 -= 10; n1 -= 14; n -= 3; czy = true; } else if (n >= 2 && 7 * n1 >= 9 * n0 && n0>=7 && n1>=9) { w += "ao"; n0 -= 7; n1 -= 9; n -= 2; czy = true; } else if (n >= 3 && 11 * n1 >= 13 * n0 && n0>=11 && n1>=13) { w += "aco"; n0 -= 11; n1 -= 13; n -= 3; czy = true; } else if (n >= 1 && n1 >= n0 && n0>=4 && n1>=4) { w += "c"; n0 -= 4; n1 -= 4; n -= 1; czy = true; } else if (n >= 2 && 9 * n1 >= 7 * n0 && n0>=9 && n1>=7) { w += "ac"; n0 -= 9; n1 -= 7; n -= 2; czy = true; } else if (n >= 1 && 5 * n1 >= 3 * n0 && n0>=5 && n1>=3) { w += "a"; n0 -= 5; n1 -= 3; n -= 1; czy = true; } } //cout<<n1<<" "<<n0<<"\n"; if (n == 0 && n0 == 0 && n1 == 0) cout << w; else cout << "NIE"; return 0; } |