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