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
#include <bits/stdc++.h>

using namespace std;
//schody ahh zadanie
int main(){
    cin.tie(0)->sync_with_stdio(0);
    int t; cin >> t;
    while(t--){
        int n; cin >> n;
        vector<int>vect = {0};
        vector<int>in(n+9, 0), out(n+9, 0);
        bool f = 0, zero = 0, last = 0;
        for(auto i = 1; i <= n; ++i){
            int x; cin >> x;
            if(x){
                if(zero) last = 1;
                f = 1;
                vect.push_back(x);
            }
            else if(f) zero = 1;
        }
        if(last){
            cout << "NIE\n";
            continue;
        }
        n = vect.size();
        int niga = 0;
        for(auto i = 1; i < n-1; ++i){
            int x = vect[i];
            int left = min(x-in[i], vect[i+1]);
            in[i] += left; out[i+1] += left;
            left = min(x-out[i], vect[i+1]);
            if(left == 0 && x){
                in[i-1]--;
                in[i+1]++;
            }
            out[i] += left; in[i+1] += left;
        }
        int dif = 0;
        for(auto i = 1; i < n; ++i){
            dif += 2*vect[i]-in[i]-out[i];
        }
        cout << (dif <= 2 ? "TAK\n" : "NIE\n");
    }
}