#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; }
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; } |