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
#include<bits/stdc++.h>

#define maxn 500010

using namespace std;

vector<char> odp;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(NULL);
    string a;
    int n;
    cin >> n;
    cin >> a;
    int zero = 0;
    int jeden = 0;
    for (int i = 0; i < a.length(); ++i) {
        if (a[i] == '0')
            ++zero;
        else
            ++jeden;
    }

    while(zero != 0 && jeden != 0) {
        //cout << zero << " " << jeden << endl;
        if (zero == jeden) {
            odp.push_back('c');
            zero -= 4;
            jeden -= 4;
        }
        else if (jeden < zero) {
            if (jeden < 3 || zero < 5) {
                cout << "NIE";
                return 0;
            }
            odp.push_back('a');
            jeden -= 3;
            zero -= 5;
        }
        else if (jeden - zero >= 4) {
            if (jeden < 6 || zero < 2) {
                cout << "NIE";
                return 0;
            }
            odp.push_back('o');
            jeden -= 6;
            zero -= 2;
        }
        else {
            if (jeden < 5 || zero < 3) {
                cout << "NIE";
                return 0;
            }
            odp.push_back('m');
            jeden -= 5;
            zero -= 3;
        }
    }
    if (zero || jeden) {
        cout << "NIE";
        return 0;
    }
    for (int i = 0; i < (int)odp.size(); ++i) {
        cout << odp[i];
    }
}