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
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    long long n;
    string s;
    cin >> n >> s;

    if (s.size() % 8 != 0) {
        cout << "NIE";
        return 0;
    }

    string temp;
    for (int i = 0; i < n; i++) {
        temp += "00000000";
    }
    if (s == temp) {
        cout << "NIE";
        return 0;
    }

    for (int i = 0; i < n; i++) {
        temp += "11111111";
    }
    if (s == temp) {
        cout << "NIE";
        return 0;
    }

    long long count0 = 0;
    for (long long i = 0; i < s.size(); i++) {
        if (s[i] == '0') {
            count0++;
        }
    }
    long long count1 = s.size() - count0;

    string out;
    while (count0 > 0 && count1 > 0) {
        if (count0 == count1) { // same amount of "0" and "1" left
            for (long long i = 0; i < (count0 / 4); i++) {
                out += 'c';
            }
            count0 = count1 = 0;
        }
        else if (count0 > count1) { // more "0" than "1"
            count0 -= 5;
            count1 -= 3;
            out += 'a';
        }
        else { // less "0"
            if (count0 < count1 - 2) { // significantly less "0" (less than 3/5)
                count0 -= 2;
                count1 -= 6;
                out += 'o';
            }
            else { // slightly less "0"
                count0 -= 3;
                count1 -= 5;
                out += 'g';
            }
        }

        if (count0 < 0 || count1 < 0) {// if negative impossible input
            cout << "NIE";
            return 0;
        }
    }

    if (count0 > 0 || count1 > 0) { // if left loop and there are 0 or 1 left 
        cout << "NIE";
        return 0;
    }
    cout << out;
}