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
#include<iostream>
#include<string>
#include<map>
using namespace std;
//ios_base::sync_with_stdio(0);

/// 1 11111100 // 6x 1, 2x 0
/// 2 1111100011111100  // 11x 1, 5x 0

int main(){
    int n, ciag_jeden = 0, ciag_zero = 0, temp_jeden = 0, temp_zero = 0;
    string ciag, wynik;
    map<int, char> literki;
    literki[3] = 'a';
    literki[4] = 'c';
    literki[5] = 'g';
    literki[6] = 'w';
    cin>>n>>ciag;
    for(int i=0; i<ciag.size(); ++i){
        if(ciag[i] == '1'){
            ciag_jeden++;
        }
    }
    ciag_zero = (n*8)-ciag_jeden;
    if(3 * n > ciag_jeden || 6 * n < ciag_jeden){
        cout<<"NIE";
        return 0;
    }
    temp_jeden = ciag_jeden;
    temp_zero = ciag_zero;
    for(int i=0; i<n; ++i){
        if(temp_jeden < temp_zero){
            wynik += 'a';
            temp_jeden -=3;
            temp_zero -=5;
        }
        else{
            if(temp_jeden > temp_zero){
                if(temp_jeden-6 < 3 && temp_jeden-6 != 0){
                    wynik+= 'g';
                    temp_jeden -=5;
                    temp_zero -=3;
                }else{
                    wynik+= 'w';
                    temp_jeden -=6;
                    temp_zero -=2;
                }
            }
            else{
                wynik+= 'c';
            }
        }
    }
    cout<<wynik;
    //cout<<"temp_jeden: "<<temp_jeden<<" temp_zero: "<<temp_zero<<endl;
    return 0;
}