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
#include <iostream>
#include <vector>

int main() {
    int n{};
    std::cin>>n;
    std::vector <int> vec;
    std::vector <int> vec2;
    for(int i=0;i<n;i++) {
        int x{};
        std::cin >> x;
        vec.push_back(x);
        if(i%2==0)  vec2.push_back(vec[0]);
        else    vec2.push_back(vec[1]-vec[0]);
    }
    if(vec.size()==1){
       std::cout<<"TAK"<<'\n';
       std::cout<<vec.size()<<'\n';
       std::cout<<vec[0]<<'\n';
    }
    else{
        if(vec[1]-vec[0]>vec[0]){
            std::cout<<"NIE"<<'\n';
        }
        else{
            if(vec.size()==2){
                std::cout<<"TAK"<<'\n';
                std::cout<<vec.size()<<'\n';
                std::cout<<vec2[0]<<" "<<vec2[1]<<'\n';
            }
            else{
                if(vec.size()==3){
                    if(vec[2]>2*vec2[0]+vec2[1]){
                        std::cout<<"NIE"<<'\n';
                    }
                    else{
                        vec2[2]=vec[2]-(vec2[0]+vec2[1]);
                        std::cout<<"TAK"<<'\n';
                        std::cout<<vec.size()<<'\n';
                        std::cout<<vec2[0]<<" "<<vec2[1]<<" "<<vec2[2]<<'\n';
                    }
                }
                else{
                    vec2[2]=vec[2]-(vec2[0]+vec2[1]);
                    int base{};
                    base=vec2[0]+vec2[1]+vec2[2];

                    for(int i=3;i<n;i++){
                        int sum{0};
                        if(i%2!=0){
                            sum=(vec2[0]+vec2[1])*((i+1)/2);
                            if(vec[i]>sum){
                                std::cout<<"NIE"<<'\n';
                                break;
                            }
                            else{
                                vec2[i]=vec[i]-base;
                                if(vec2[i]>vec[0]){
                                    std::cout<<"NIE"<<'\n';
                                    break;
                                }
                                else{
                                    base+=vec2[i];
                                }
                            }
                        }
                        else{
                            sum=(vec2[0]*(i-1))+(vec2[1]*(i-2));
                            if(vec[i]>sum){
                                std::cout<<"NIE"<<'\n';
                                break;
                            }
                            else{
                                vec2[i]=vec[i]-base;
                                if(vec2[i]>vec[0]){
                                    std::cout<<"NIE"<<'\n';
                                    break;
                                }
                                else{
                                    base+=vec2[i];
                                }
                            }
                        }
                        if(i==n-1){
                            std::cout<<"TAK"<<'\n';
                            std::cout<<vec2.size()<<'\n';
                            for(int i=0;i<vec2.size();i++){
                                std::cout<<vec2[i]<<" ";
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}