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
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <iostream>

using namespace std;

const int a1 = 3, a2 = 5,
          b1 = 4, b2 = 4,
          c1 = 5, c2 = 3,
          d1 = 6, d2 = 2;

int n, N, M, tmp;
char cc;
bool A, B, C, D;
int main()
{
    scanf("%d", &n);
    for(int i = 0; i < n<<3; ++i){
            cin >> cc;
            if(cc == '1') ++N;
            else ++M;
    }

    if(N % a1 == 0 && M % a2 == 0 && N / a1 ==  M / a2){
            for(int i = 0; i < n; ++i) printf("a");
            return 0;
    }

    if(N % b1 == 0 && M % b2 == 0 && N / b1 ==  M / b2){
            for(int i = 0; i < n; ++i) printf("c");
            return 0;
    }

    if(N % c1 == 0 && M % c2 == 0 && N / c1 ==  M / c2){
            for(int i = 0; i < n; ++i) printf("g");
            return 0;
    }

    if(N % d1 == 0 && M % d2 == 0 && N / d1 ==  M / d2){
            for(int i = 0; i < n; ++i) printf("o");
            return 0;
    }

    while(true){
            if(!A){
                    if(N - a1*tmp <= 0 || M - a2*tmp <= 0) A = 1;
                    else{
                            if((N - a1*tmp) % b1 == 0 && (M - a2*tmp) % b2 == 0 && (N - a1*tmp) / b1 == (M - a2*tmp) / b2){
                                    for(int i = 0; i < tmp; ++i) printf("a");
                                    for(int i = tmp; i < n; ++i) printf("c");
                                    return 0;
                            }
                            else if((N - a1*tmp) % c1 == 0 && (M - a2*tmp) % c2 == 0 && (N - a1*tmp) / c1 == (M - a2*tmp) / c2){
                                    for(int i = 0; i < tmp; ++i) printf("a");
                                    for(int i = tmp; i < n; ++i) printf("g");
                                    return 0;
                            }
                            else if((N - a1*tmp) % d1 == 0 && (M - a2*tmp) % d2 == 0 && (N - a1*tmp) / d1 == (M - a2*tmp) / d2){
                                    for(int i = 0; i < tmp; ++i) printf("a");
                                    for(int i = tmp; i < n; ++i) printf("o");
                                    return 0;
                            }
                    }
            }

            if(!B){
                    if(N - b1*tmp <= 0 || M - b2*tmp <= 0) B = 1;
                    else{
                            if((N - b1*tmp) % a1 == 0 && (M - b2*tmp) % a2 == 0 && (N - b1*tmp) / a1 == (M - b2*tmp) / a2){
                                    for(int i = 0; i < tmp; ++i) printf("c");
                                    for(int i = tmp; i < n; ++i) printf("a");
                                    return 0;
                            }
                            else if((N - b1*tmp) % c1 == 0 && (M - b2*tmp) % c2 == 0 && (N - b1*tmp) / c1 == (M - b2*tmp) / c2){
                                    for(int i = 0; i < tmp; ++i) printf("c");
                                    for(int i = tmp; i < n; ++i) printf("g");
                                    return 0;
                            }
                            else if((N - b1*tmp) % d1 == 0 && (M - b2*tmp) % d2 == 0 && (N - b1*tmp) / d1 == (M - b2*tmp) / d2){
                                    for(int i = 0; i < tmp; ++i) printf("c");
                                    for(int i = tmp; i < n; ++i) printf("o");
                                    return 0;
                            }
                    }
            }

            if(!C){
                    if(N - c1*tmp <= 0 || M - c2*tmp <= 0) C = 1;
                    else{
                            if((N - c1*tmp) % b1 == 0 && (M - c2*tmp) % b2 == 0 && (N - c1*tmp) / b1 == (M - c2*tmp) / b2){
                                    for(int i = 0; i < tmp; ++i) printf("g");
                                    for(int i = tmp; i < n; ++i) printf("c");
                                    return 0;
                            }
                            else if((N - c1*tmp) % a1 == 0 && (M - c2*tmp) % a2 == 0 && (N - c1*tmp) / a1 == (M - c2*tmp) / a2){
                                    for(int i = 0; i < tmp; ++i) printf("g");
                                    for(int i = tmp; i < n; ++i) printf("a");
                                    return 0;
                            }
                            else if((N - c1*tmp) % d1 == 0 && (M - c2*tmp) % d2 == 0 && (N - c1*tmp) / d1 == (M - c2*tmp) / d2){
                                    for(int i = 0; i < tmp; ++i) printf("g");
                                    for(int i = tmp; i < n; ++i) printf("o");
                                    return 0;
                            }
                    }
            }

            if(!D){
                    if(N - d1*tmp <= 0 || M - d2*tmp <= 0) D = 1;
                    else{
                            if((N - d1*tmp) % b1 == 0 && (M - d2*tmp) % b2 == 0 && (N - d1*tmp) / b1 == (M - d2*tmp) / b2){
                                    for(int i = 0; i < tmp; ++i) printf("o");
                                    for(int i = tmp; i < n; ++i) printf("c");
                                    return 0;
                            }
                            else if((N - d1*tmp) % c1 == 0 && (M - d2*tmp) % c2 == 0 && (N - d1*tmp) / c1 == (M - d2*tmp) / c2){
                                    for(int i = 0; i < tmp; ++i) printf("o");
                                    for(int i = tmp; i < n; ++i) printf("g");
                                    return 0;
                            }
                            else if((N - d1*tmp) % a1 == 0 && (M - d2*tmp) % a2 == 0 && (N - d1*tmp) / a1 == (M - d2*tmp) / a2){
                                    for(int i = 0; i < tmp; ++i) printf("o");
                                    for(int i = tmp; i < n; ++i) printf("a");
                                    return 0;
                            }
                    }
            }
            ++tmp;

            if(A && B && C && D){
                    printf("NIE");
                    return 0;
            }
    }
    return 0;
}