#include <iostream> #include <set> int main() { std::string bity; int bitow; int zer = 0; int jedynek = 0; int zer_tu; char litery[] = "--omia--"; //char litery[] = "0123456789"; std::cin >> bitow >> bity; for (int i = 0; i < 8*bitow; ++i) { if (bity[i] == '0') { ++zer; } else { ++jedynek; } } if ((2*jedynek > 6*zer) || (5*jedynek < 3*zer)) { std::cout << "NIE" << std::endl; // std::cerr << zer << ' ' << jedynek << std::endl; return 0; } while (zer) { zer_tu = 8 * zer/(zer + jedynek); // std::cerr << zer << ' ' << jedynek << ' ' << zer_tu << std::endl; std::cout << litery[zer_tu]; zer -= zer_tu; jedynek -= (8 - zer_tu); } std::cout << 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 33 34 35 36 37 38 39 40 41 | #include <iostream> #include <set> int main() { std::string bity; int bitow; int zer = 0; int jedynek = 0; int zer_tu; char litery[] = "--omia--"; //char litery[] = "0123456789"; std::cin >> bitow >> bity; for (int i = 0; i < 8*bitow; ++i) { if (bity[i] == '0') { ++zer; } else { ++jedynek; } } if ((2*jedynek > 6*zer) || (5*jedynek < 3*zer)) { std::cout << "NIE" << std::endl; // std::cerr << zer << ' ' << jedynek << std::endl; return 0; } while (zer) { zer_tu = 8 * zer/(zer + jedynek); // std::cerr << zer << ' ' << jedynek << ' ' << zer_tu << std::endl; std::cout << litery[zer_tu]; zer -= zer_tu; jedynek -= (8 - zer_tu); } std::cout << std::endl; return 0; } |