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
#include <iostream>

using namespace std;

long long a [1001000][3];
long long il, pomoc, y, z;
char x;


int main()
{
    cin >> il;
    for (int q = 1; q <= 8*il; q++){
        cin >> x;
        if (x == '1') pomoc++;
    }
    if (pomoc < 3*il){
        cout << "NIE";
        return 0;
    }
    if (pomoc > 6*il){
        cout << "NIE";
        return 0;
    }
    char znak [10];
    znak[3] = 'a';
    znak[4] = 'c';
    znak[5] = 'g';
    znak[6] = 'w';
    y = pomoc/il;
    //cout << "mam " << pomoc << " jedynek, więc startuję z " << y << '\n';
    //cout << "mam zrobić " << il << " liter\n";
    while (il > 1){
        z = (pomoc-y)/(il-1);
        //cout << "do wykorzystania " <<  il << " liter i " << pomoc << " jedynek, co daje średnio " << z << '\n';
        if (z < 3){
            //cout << "tylko, że to będzie za mało\n";
            y++;
        }
        else if (z > 6 || (z == 6 && 6*il-6 < pomoc-z)){
            y++;
            //cout << "tylko, że to będzie za dużo\n";
        }
        else {
            il--;
            pomoc -= z;
            cout << znak[z];
        }
    }
    cout << znak[pomoc];
}