#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<ll> sum_up(ll a, ll k){
vector<ll> pos = {1,2,3,4}, result(k, 1);
result[k-1] = 0;
ll m = a - k + 1;
if(m <= 0 || a > k*4) return {};
else{
if(m <= 4){
result[k-1] = m;
}
else{
ll i = 0;
while(m > 4 && i < k - 1){
if(result[i] == 4) i++;
result[i]++;
m--;
}
if(i == k - 1) result = {};
else result[k-1] = m;
}
return result;
}
}
int main(){
ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
cout.tie(NULL);
map<int, char> letters = {
{1, 'a'},
{2, 'c'},
{3, 'g'},
{4, 'o'}
};
ll n;
cin >> n;
string s;
cin >> s;
ll zero = 0, one = 0;
for(ll i = 0; i < 8*n; i++){
if(s[i] == '0') zero++;
else one++;
}
zero -= n;
one -= 2*n;
//cout << zero << " " << one << "\n";
vector<ll> chars = sum_up(one, n);
/*for(ll i = 0; i < n; i++){
cout << chars[i] << " ";
}*/
if(chars.size() == 0) cout << "NIE";
else{
string result;
for(ll i = 0; i < n; i++){
result += letters[chars[i]];
}
cout << result;
}
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 | #include<bits/stdc++.h> using namespace std; typedef long long ll; vector<ll> sum_up(ll a, ll k){ vector<ll> pos = {1,2,3,4}, result(k, 1); result[k-1] = 0; ll m = a - k + 1; if(m <= 0 || a > k*4) return {}; else{ if(m <= 4){ result[k-1] = m; } else{ ll i = 0; while(m > 4 && i < k - 1){ if(result[i] == 4) i++; result[i]++; m--; } if(i == k - 1) result = {}; else result[k-1] = m; } return result; } } int main(){ ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL); map<int, char> letters = { {1, 'a'}, {2, 'c'}, {3, 'g'}, {4, 'o'} }; ll n; cin >> n; string s; cin >> s; ll zero = 0, one = 0; for(ll i = 0; i < 8*n; i++){ if(s[i] == '0') zero++; else one++; } zero -= n; one -= 2*n; //cout << zero << " " << one << "\n"; vector<ll> chars = sum_up(one, n); /*for(ll i = 0; i < n; i++){ cout << chars[i] << " "; }*/ if(chars.size() == 0) cout << "NIE"; else{ string result; for(ll i = 0; i < n; i++){ result += letters[chars[i]]; } cout << result; } return 0; } |
English