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

using namespace std;

int n, t;
long long l, a, b;
vector <pair <long long, long long> > mamy, mamy_kopia, chcemy;

bool czy_lewo (){
    long long litry_chcemy = 0, litry_mamy = 0, srednia_chcemy = 0 , srednia_mamy = 0;
    int j = 0;
    for (int i=0; i<n; i++){
        litry_chcemy+= chcemy[i].second;
        srednia_chcemy+= chcemy[i].second*chcemy[i].first;
        while (j < n && litry_mamy+mamy[j].second <= litry_chcemy){
            litry_mamy+=mamy[j].second;
            srednia_mamy+= mamy[j].second*mamy[j].first;
            j++;
        }
        if (litry_chcemy > litry_mamy && j<n){
            srednia_mamy+= (litry_chcemy-litry_mamy)*mamy[j].first;
            mamy[j].second-=(litry_chcemy-litry_mamy);
            litry_mamy=litry_chcemy;
        }
        //cout << litry_chcemy << " " << srednia_chcemy << " " << srednia_mamy << "\n";
        if (srednia_chcemy < srednia_mamy)
            return false;
    }
    mamy = mamy_kopia;
    return true;
}

bool czy_prawo (){
    long long litry_chcemy = 0, litry_mamy = 0, srednia_chcemy = 0 , srednia_mamy = 0;
    int j = n-1;
    for (int i=n-1; i>-1; i--){
        litry_chcemy+= chcemy[i].second;
        srednia_chcemy+= chcemy[i].second*chcemy[i].first;
        while (j > -1 && litry_mamy+mamy[j].second <= litry_chcemy){
            litry_mamy+=mamy[j].second;
            srednia_mamy+= mamy[j].second*mamy[j].first;
            j--;
        }
        if (litry_chcemy > litry_mamy && j>-1){
            srednia_mamy+= (litry_chcemy-litry_mamy)*mamy[j].first;
            mamy[j].second-=(litry_chcemy-litry_mamy);
            litry_mamy=litry_chcemy;
        }
       // cout <<i << " " << j << " " <<litry_chcemy << " " << srednia_chcemy << " " << srednia_mamy << "\n";
        if (srednia_chcemy > srednia_mamy)
            return false;
    }
    return true;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin >> t;
    for (int test=0; test < t; test++){
        cin >> n;
        for (int i = 0; i<n; i++){
            cin >> l >> a >> b;
            mamy.push_back(make_pair(a, l));
            chcemy.push_back(make_pair(b, l));
        }
        sort(mamy.begin(), mamy.end());
        sort(chcemy.begin(), chcemy.end());
        mamy_kopia = mamy;
        if (czy_lewo() && czy_prawo()){
            cout << "TAK\n";
        } else {
            cout << "NIE\n";
        }
        mamy.clear();
        chcemy.clear();
    }
    return 0;
}