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
#include <stdio.h>

#define MIN (-1000*1000*1000)
#define DEBUG (0)

int n, a, k = 0, prev_a = 0, sum = 0;
int b[100*1000];
int in[400];

void add(int x) {
  b[k++] = x;
}

int main() {
  scanf("%d", &n);
  for(int i = 0; i < n; i++) {
    scanf("%d", &a);
    in[i] = a;
    add(a - prev_a);
    prev_a = a;

    if(DEBUG) { printf("i=%d    j: ", i); }
    sum = 0;
    for(int j = 0; j <= i; j++) {
      sum += b[i-j];
      if(sum > in[j]) {
        printf("NIE");
        if(!DEBUG) { return 0; }
      }
      if(DEBUG) { printf("%d[idx=%d;sum=%d], ", j, i-j, sum); }
    }
    if(DEBUG) { printf("\n"); }
  }

  printf("TAK\n%d\n%d", k, b[0]);
  for(int i = 1; i < k; i++) {
    printf(" %d", b[i]);
  }
  return 0;
}