#include <algorithm> #include <iostream> #include <string> int main(void) { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); int n; std::cin >> n; std::string s; std::cin >> s; int count = 0; for (char c: s) { if (c == '1') { count++; } } std::string result; if ((count < 3 * n) || (count > 6 * n)) { result = "NIE"; } else { count -= 3 * n; const uint8_t mapping[] = {0b0000, 0b0010, 0b0110, 0b1110}; for (int i = 0; i < n; i++) { int extra_bits = std::min(count, 3); count -= extra_bits; result += 'a' | mapping[extra_bits]; } } std::cout << result << std::endl; 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 | #include <algorithm> #include <iostream> #include <string> int main(void) { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); int n; std::cin >> n; std::string s; std::cin >> s; int count = 0; for (char c: s) { if (c == '1') { count++; } } std::string result; if ((count < 3 * n) || (count > 6 * n)) { result = "NIE"; } else { count -= 3 * n; const uint8_t mapping[] = {0b0000, 0b0010, 0b0110, 0b1110}; for (int i = 0; i < n; i++) { int extra_bits = std::min(count, 3); count -= extra_bits; result += 'a' | mapping[extra_bits]; } } std::cout << result << std::endl; return 0; } |