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
#include <bits/stdc++.h>
using namespace std;
int n,i,j,cnt,b[303];
long long cur,r[100100];
bool ok[303];
int main() {
  scanf("%d",&n);
  for (i=0; i<n; i++) scanf("%d",&b[i]);
  for (i=0; i<100000 && cnt<n; i++) {
    r[i]=b[0];
    for (cur=0, j=1; j<n && i>=j; j++) {
      cur+=r[i-j];
      r[i]=min(r[i],b[j]-cur);
    }
    for (cur=j=0; j<n && i>=j; j++) {
      cur+=r[i-j];
      if (cur==b[j] && !ok[j]) {
        ok[j]=true;
        ++cnt;
      }
    }
  }
  if (cnt==n) {
    puts("TAK");
    printf("%d\n",i);
    for (j=0; j<i; j++) printf("%lld%c",r[j],(j==i-1)?'\n':' ');
  } else puts("NIE");
  return 0;
}