#include <bits/stdc++.h>
using namespace std;
#define FOR(i,x,y) for(int i=(int)(x);i<(int)(y);++i)
#define FORE(i,x,y) for(int i=(int)(x);i<=(int)(y);++i)
#define FORD(i,x,y) for(int i=(int)(x);i>=(int)(y);--i)
#define PB push_back
#define MP make_pair
#define ST first
#define ND second
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<int,int> pill;
const int MAXN=2e5+6;
int t,n;
pill c[MAXN];
int main()
{
ios_base::sync_with_stdio(false);cin.tie(0);
cin>>t;
ll l,a,b;
while(t--){
cin>>n;
FOR(i,0,n){
cin>>l>>a>>b;
c[i*2]=MP(a,l);
c[i*2+1]=MP(b,-l);
}
n*=2;
sort(c,c+n);
bool can=true;
ll en=0;
ll sum=c[n-1].ND;
FORD(i,n-2,0){
en+=sum*(c[i+1].ST-c[i].ST);
sum+=c[i].ND;
if(en<0){
can=false;
break;
}
}
if(can&&en==0)cout<<"TAK\n";
else cout<<"NIE\n";
}
return 0;
}
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 | #include <bits/stdc++.h> using namespace std; #define FOR(i,x,y) for(int i=(int)(x);i<(int)(y);++i) #define FORE(i,x,y) for(int i=(int)(x);i<=(int)(y);++i) #define FORD(i,x,y) for(int i=(int)(x);i>=(int)(y);--i) #define PB push_back #define MP make_pair #define ST first #define ND second typedef long long ll; typedef pair<int,int> pii; typedef pair<int,int> pill; const int MAXN=2e5+6; int t,n; pill c[MAXN]; int main() { ios_base::sync_with_stdio(false);cin.tie(0); cin>>t; ll l,a,b; while(t--){ cin>>n; FOR(i,0,n){ cin>>l>>a>>b; c[i*2]=MP(a,l); c[i*2+1]=MP(b,-l); } n*=2; sort(c,c+n); bool can=true; ll en=0; ll sum=c[n-1].ND; FORD(i,n-2,0){ en+=sum*(c[i+1].ST-c[i].ST); sum+=c[i].ND; if(en<0){ can=false; break; } } if(can&&en==0)cout<<"TAK\n"; else cout<<"NIE\n"; } return 0; } |
English