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