#include <bits/stdc++.h>
#define PB push_back
#define ST first
#define ND second
//#pragma GCC optimize ("O3")
//#pragma GCC target("tune=native")
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//using namespace __gnu_pbds;
//typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
using namespace std;
using ll = long long;
using pi = pair<int, int>;
using vi = vector<int>;
string s;
int n, cnt;
char t[4] = {'a','c', 'g', 'o'};
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> s;
for(auto c : s) cnt += (c == '1');
for(int four = 0; four <= 1; four++) {
for(int five = 0; five <= 2; ++five) {
int cur = n - four - five;
int ones = cnt - 4 * four - 5 * five;
if(ones < 0 || (6 * cur - ones) < 0 || (6*cur - ones) % 3 != 0) continue;
int three = (6 * cur - ones) / 3;
if(three > cur) continue;
for(int i = 0; i < three; ++i) {
cout << t[0];
}
for(int i = 0; i < four; ++i) {
cout << t[1];
}
for(int i = 0; i < five; ++i) {
cout << t[2];
}
for(int i = 0; i < cur - three; ++i) {
cout << t[3];
}
return 0;
}
}
cout << "NIE";
}
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 | #include <bits/stdc++.h> #define PB push_back #define ST first #define ND second //#pragma GCC optimize ("O3") //#pragma GCC target("tune=native") //mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //using namespace __gnu_pbds; //typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; using namespace std; using ll = long long; using pi = pair<int, int>; using vi = vector<int>; string s; int n, cnt; char t[4] = {'a','c', 'g', 'o'}; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> s; for(auto c : s) cnt += (c == '1'); for(int four = 0; four <= 1; four++) { for(int five = 0; five <= 2; ++five) { int cur = n - four - five; int ones = cnt - 4 * four - 5 * five; if(ones < 0 || (6 * cur - ones) < 0 || (6*cur - ones) % 3 != 0) continue; int three = (6 * cur - ones) / 3; if(three > cur) continue; for(int i = 0; i < three; ++i) { cout << t[0]; } for(int i = 0; i < four; ++i) { cout << t[1]; } for(int i = 0; i < five; ++i) { cout << t[2]; } for(int i = 0; i < cur - three; ++i) { cout << t[3]; } return 0; } } cout << "NIE"; } |
English