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


using namespace std;

struct p{
    int l;
    int t;
};

#define ll long long
p make(float a, float b){
    p p1;
    p1.l = a;
    p1.t = b;
    return p1;
}
int main(){
    int n, m, zm =0;
    float l, t0, t1, a, b;
    vector <p> tem0;
    vector <p> tem1;
    cin >> n;
    for(int i=0; i<=n-1;i++){
        cin >> m;
    vector <p> tem0;
    vector <p> tem1;
        for(int j=0; j<=m-1; j++){
            cin >> l >> t0 >> t1;
            tem0.push_back(make(l,t0));     
            tem1.push_back(make(l,t1));
        }

        for(int k=0; k<=tem1.size()-1; k++){
            zm =0;
            for(int i=0; i<=tem0.size()-1; i++){
                if(tem1[k].l == 0){
                    break;
                }
                if(tem1[k].t == tem0[i].t){
                    if(tem0[k].l >= tem1[i].l){
                        tem1[k].l -= tem0[i].l;
                        tem0[i].l = 0;
                    }else{
                        tem0[i].l = - 1* (tem1[k].l -tem0[i].l);
                        tem1[k].l = 0 ;
                    }
                }
                for(int j=0; j<=tem0.size()-1; j++){
                    if(i!=j &&  tem0[j].l !=0){
                        a = (tem1[k].t * (tem1[k].l));
                        a -= (tem0[j].t*(tem1[k].l));
                        a /= (tem0[i].t - tem0[j].t);
                        b = (tem1[k].l) - a;

        //                if(a <= tem0[i].l && a >= 0 && b <= tem0[j].l && b>= 0){
                            tem0[i].l -= a;
                            tem0[j].l -= b;

                            if(a+b> tem1[k].l){
                                tem0.push_back(make((a+b - tem1[k].l),tem1[k].t));
                                tem1[k].l =0;
                                k = 0;
                            }else {
                                tem1[k].l -= a+b;
                                k=0;
                            }
        //                }
                    }
                }
            }
        }

        int w=0;
      for(int i=0; i<=tem1.size()-1; i++){
        if(tem1[i].l != 0){
        w =1;
        }
    }
if (w == 0){
cout << "TAK";
}else cout << "NIE";
}
return 0;
}