#include <bits/stdc++.h>
#define lld long long int
#define ff first
#define ss second
#define pii pair<lld,lld>
#define mp make_pair
using namespace std;
lld N,iloz,a,b,c,m;
pii p[1000010],k[1000010];
int main()
{
scanf("%lld",&iloz);
for(lld oo = 0;oo<iloz;++oo)
{
scanf("%lld",&N);
for(lld i = 0;i<N;++i)
{
scanf("%lld%lld%lld",&a,&b,&c);
p[i]=mp(b,a);
k[i]=mp(c,a);
}
sort(p,p+N);
sort(k,k+N);
lld sum=0;
lld indp=N-1,indk=N-1;
bool fl=1;
while(indp>=0 and indk>=0)
{
lld pom = min(p[indp].ss,k[indk].ss);
sum+=p[indp].ff*pom-k[indk].ff*pom;
if(sum<0)
{
break;
}
p[indp]=mp(p[indp].ff,p[indp].ss-pom);
k[indk]=mp(k[indk].ff,k[indk].ss-pom);
if(p[indp].ss==0)--indp;
if(k[indk].ss==0)--indk;
}
if(indp!=-1 or indk!=-1 or sum!=0)fl=0;
if(!fl)puts("NIE");
else puts("TAK");
}
}
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 | #include <bits/stdc++.h> #define lld long long int #define ff first #define ss second #define pii pair<lld,lld> #define mp make_pair using namespace std; lld N,iloz,a,b,c,m; pii p[1000010],k[1000010]; int main() { scanf("%lld",&iloz); for(lld oo = 0;oo<iloz;++oo) { scanf("%lld",&N); for(lld i = 0;i<N;++i) { scanf("%lld%lld%lld",&a,&b,&c); p[i]=mp(b,a); k[i]=mp(c,a); } sort(p,p+N); sort(k,k+N); lld sum=0; lld indp=N-1,indk=N-1; bool fl=1; while(indp>=0 and indk>=0) { lld pom = min(p[indp].ss,k[indk].ss); sum+=p[indp].ff*pom-k[indk].ff*pom; if(sum<0) { break; } p[indp]=mp(p[indp].ff,p[indp].ss-pom); k[indk]=mp(k[indk].ff,k[indk].ss-pom); if(p[indp].ss==0)--indp; if(k[indk].ss==0)--indk; } if(indp!=-1 or indk!=-1 or sum!=0)fl=0; if(!fl)puts("NIE"); else puts("TAK"); } } |
English