#include<bits/stdc++.h>
using namespace std;
int t,n,A,B,C;
long long Q1,Q2,pmax,dmax,pmin,dmin;
vector<pair<int,int> >t1,t2;
bool cmp(const pair<int,int>&a, const pair<int,int>&b)
{
return a.second<b.second;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>t;
for(int tt=0;tt<t;tt++)
{
cin>>n;
Q1=0;
Q2=0;
pmax=0;
pmin=0;
dmax=0;
dmin=0;
for(int i=0;i<n;i++)
{
cin>>A>>B>>C;
Q1+=A*B;
Q2+=A*C;
pair<int,int>par;
par.first=A;
par.second=B;
t1.push_back(par);
par.second=C;
t2.push_back(par);
}
sort(t1.begin(),t1.end(),cmp);
sort(t2.begin(),t2.end(),cmp);
if(t2[n-1].second==t1[n-1].second)
{
for(int i=n-1;i>=0;i--)
{
if(t1[i].second!=t1[n-1].second && t2[i].second!=t2[n-1].second)
{
break;
}
if(t1[i].second==t1[n-1].second)
{
pmax+=t1[i].first;
}
if(t2[i].second==t2[n-1].second)
{
dmax+=t2[i].first;
}
}
if(dmax>pmax)
{
cout << "NIE" << endl;
t1.clear();
t2.clear();
continue;
}
}
if(t2[0].second==t1[0].second)
{
for(int i=0;i<=n-1;i++)
{
if(t1[i].second!=t1[0].second && t2[i].second!=t2[0].second)
{
break;
}
if(t1[i].second==t1[0].second)
{
pmin+=t1[i].first;
}
if(t2[i].second==t2[0].second)
{
dmin+=t2[i].first;
}
}
if(dmin>pmin)
{
cout << "NIE" << endl;
t1.clear();
t2.clear();
continue;
}
}
if(t2[n-1].second>t1[n-1].second || t2[0].second<t1[0].second)
{
cout << "NIE" << endl;
}
else
{
if(Q1==Q2)
{
cout << "TAK" << endl;
}
else
{
cout << "NIE" << endl;
}
}
t1.clear();
t2.clear();
}
}
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 98 99 100 101 102 103 104 105 106 107 108 109 | #include<bits/stdc++.h> using namespace std; int t,n,A,B,C; long long Q1,Q2,pmax,dmax,pmin,dmin; vector<pair<int,int> >t1,t2; bool cmp(const pair<int,int>&a, const pair<int,int>&b) { return a.second<b.second; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>t; for(int tt=0;tt<t;tt++) { cin>>n; Q1=0; Q2=0; pmax=0; pmin=0; dmax=0; dmin=0; for(int i=0;i<n;i++) { cin>>A>>B>>C; Q1+=A*B; Q2+=A*C; pair<int,int>par; par.first=A; par.second=B; t1.push_back(par); par.second=C; t2.push_back(par); } sort(t1.begin(),t1.end(),cmp); sort(t2.begin(),t2.end(),cmp); if(t2[n-1].second==t1[n-1].second) { for(int i=n-1;i>=0;i--) { if(t1[i].second!=t1[n-1].second && t2[i].second!=t2[n-1].second) { break; } if(t1[i].second==t1[n-1].second) { pmax+=t1[i].first; } if(t2[i].second==t2[n-1].second) { dmax+=t2[i].first; } } if(dmax>pmax) { cout << "NIE" << endl; t1.clear(); t2.clear(); continue; } } if(t2[0].second==t1[0].second) { for(int i=0;i<=n-1;i++) { if(t1[i].second!=t1[0].second && t2[i].second!=t2[0].second) { break; } if(t1[i].second==t1[0].second) { pmin+=t1[i].first; } if(t2[i].second==t2[0].second) { dmin+=t2[i].first; } } if(dmin>pmin) { cout << "NIE" << endl; t1.clear(); t2.clear(); continue; } } if(t2[n-1].second>t1[n-1].second || t2[0].second<t1[0].second) { cout << "NIE" << endl; } else { if(Q1==Q2) { cout << "TAK" << endl; } else { cout << "NIE" << endl; } } t1.clear(); t2.clear(); } } |
English