#include <bits/stdc++.h> #include <iostream> using namespace std; int n; int main() { cin >> n; string k, ans; if (n <= 0) { cout << "NIE"; return 0; } cin >> k; int arr[8 * n], zera = 0, jedynki = 0; for (int i = 0; i < 8 * n; ++i) { arr[i] = k.at(i) - '0'; if (arr[i] == 0) zera++; else jedynki++; } if (abs(jedynki - zera) % 2 == 1) { cout << "NIE"; return 0; } //odejmujemy 3 pierwsze cyfry z początku każdego słowa zera -= n; jedynki -= 2 * n; for (int i = 0; i < n; ++i) { int a, c, g, o; if (zera >= 4 && jedynki >= 1) a = abs(zera - 4 - jedynki + 1); else a = INT_MAX; if (zera >= 3 && jedynki >= 2) c = abs(zera - 3 - jedynki + 2); else c = INT_MAX; if (zera >= 2 && jedynki >= 3) g = abs(zera - 2 - jedynki + 3); else g = INT_MAX; if (zera >= 1 && jedynki >= 4) o = abs(zera - 1 - jedynki + 4); else o = INT_MAX; if (a <= c && a <= g && a <= o) { ans.append("a"); zera -= 4; jedynki -= 1; } else if (c <= a && c <= g && c <= o) { ans.append("c"); zera -= 3; jedynki -= 2; } else if (g <= a && g <= c && g <= o) { ans.append("g"); zera -= 2; jedynki -= 3; } else if (o <= a && o <= c && o <= g){ ans.append("o"); zera -= 1; jedynki -= 4; } } if (zera != 0 || jedynki != 0) { cout << "NIE"; } else { cout << ans; } 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 | #include <bits/stdc++.h> #include <iostream> using namespace std; int n; int main() { cin >> n; string k, ans; if (n <= 0) { cout << "NIE"; return 0; } cin >> k; int arr[8 * n], zera = 0, jedynki = 0; for (int i = 0; i < 8 * n; ++i) { arr[i] = k.at(i) - '0'; if (arr[i] == 0) zera++; else jedynki++; } if (abs(jedynki - zera) % 2 == 1) { cout << "NIE"; return 0; } //odejmujemy 3 pierwsze cyfry z początku każdego słowa zera -= n; jedynki -= 2 * n; for (int i = 0; i < n; ++i) { int a, c, g, o; if (zera >= 4 && jedynki >= 1) a = abs(zera - 4 - jedynki + 1); else a = INT_MAX; if (zera >= 3 && jedynki >= 2) c = abs(zera - 3 - jedynki + 2); else c = INT_MAX; if (zera >= 2 && jedynki >= 3) g = abs(zera - 2 - jedynki + 3); else g = INT_MAX; if (zera >= 1 && jedynki >= 4) o = abs(zera - 1 - jedynki + 4); else o = INT_MAX; if (a <= c && a <= g && a <= o) { ans.append("a"); zera -= 4; jedynki -= 1; } else if (c <= a && c <= g && c <= o) { ans.append("c"); zera -= 3; jedynki -= 2; } else if (g <= a && g <= c && g <= o) { ans.append("g"); zera -= 2; jedynki -= 3; } else if (o <= a && o <= c && o <= g){ ans.append("o"); zera -= 1; jedynki -= 4; } } if (zera != 0 || jedynki != 0) { cout << "NIE"; } else { cout << ans; } return 0; } |