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
#include <bits/stdc++.h>
#define ST first
#define ND second
#define int long long
using namespace std;
int te, n, a, b, c, idx, zle, jest, mam, zostalo;
pair <int, int> teraz[100005], wynik[100005];
main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin>>te;
    while(te--)
    {
        cin>>n;
        for(int i = 1; i <= n; i++)
        {
            cin>>a>>b>>c;
            teraz[i] = {b, a};
            wynik[i] = {c, a};
        }

        sort(teraz+1, teraz+n+1);
        sort(wynik+1, wynik+n+1);

        idx = 1;
        jest = mam = 0;

        for(int i = 1; i <= n; i++)
        {
            a = wynik[i].ND;
            b = wynik[i].ST;
            mam += a * b;
            zostalo = a;
            while(zostalo > 0)
            {
                if (teraz[idx].ND <= 0)
                    idx++;
                if(teraz[idx].ND >= zostalo)
                    jest += zostalo * teraz[idx].ST, teraz[idx].ND -= zostalo, zostalo = 0;
                else
                    jest += teraz[idx].ND * teraz[idx].ST, zostalo -= teraz[idx].ND, teraz[idx].ND = 0;
                if(idx >= n+1)
                    zle = 1;
            }
            if(jest > mam && i != n)
                zle = 1;
            if (jest != mam && i == n)
                zle = 1;
        }
        if(zle) cout<<"NIE"<<endl;
        else cout<<"TAK"<<endl;
        zle = 0;
    }
}