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
#include <iostream>
  #include <stdio.h>
  #include <cstdio>
  using namespace std;

  int bitsIn[256];

  int main() {
    for (int i = 0; i < 256; i++) {
      bitsIn[i] = 0;
    }
    for (int shift = 0; shift < 8; shift++) {
      for (int theByte = 0; theByte < 256; theByte++) {
        bitsIn[theByte] += (theByte >> shift) % 2;
      }
    }

    int letters;
    cin >> letters;

    int ones = 0;
    for (int i = 0; i < 8 * letters; i++) {
      int digit = getchar();
      if (digit == '1') {
        ones++;
      } else if (digit == '0') {

      } else {
        i--;
      }
    }

    int letterWithOnes[10];
    letterWithOnes[3] = 'a';
    letterWithOnes[4] = 'c';
    letterWithOnes[5] = 'g';
    letterWithOnes[6] = 'o';

    if (3 * letters <= ones && ones <= 6 * letters) {
      int onesPerLetter = ones / letters;
      int extraOnes = ones - onesPerLetter * letters;

      for (int i = 0; i < letters - extraOnes; i++) {
        printf("%c", letterWithOnes[onesPerLetter]);
      }
      for (int i = 0; i < extraOnes; i++) {
        printf("%c", letterWithOnes[onesPerLetter + 1]);
      }
    } else {
      printf("NIE");
    }

    return 0;
  }