#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
void solve() {
int n;
scanf("%d", &n);
ll total_a = 0, total_b = 0;
vector<pii> va, vb;
for (int i = 0; i < n; i++) {
int l,a,b;
scanf("%d%d%d", &l, &a, &b);
total_a += (ll)l*a;
total_b += (ll)l*b;
va.push_back({a,l});
vb.push_back({b,l});
}
if (total_a != total_b) {
puts("NIE");
return;
}
sort(va.begin(), va.end(), greater<pair<int,int>>());
sort(vb.begin(), vb.end(), greater<pair<int,int>>());
ll la = 0, lb = 0;
ll sa = 0, sb = 0;
int wska = 0, wskb = 0;
while (wska < n) {
if (la + va[wska].second <= lb + vb[wskb].second) {
la += va[wska].second;
sa += (ll)va[wska].first*va[wska].second;
wska++;
if (sa < sb + (ll)vb[wskb].first*(la-lb)) {
puts("NIE");
return;
}
} else {
lb += vb[wskb].second;
sb += (ll)vb[wskb].first*vb[wskb].second;
wskb++;
if (sa + (ll)va[wska].first*(lb-la) < sb) {
puts("NIE");
return;
}
}
}
puts("TAK");
}
int main() {
int tt;
scanf("%d", &tt);
while (tt--) {
solve();
}
}
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 | #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; void solve() { int n; scanf("%d", &n); ll total_a = 0, total_b = 0; vector<pii> va, vb; for (int i = 0; i < n; i++) { int l,a,b; scanf("%d%d%d", &l, &a, &b); total_a += (ll)l*a; total_b += (ll)l*b; va.push_back({a,l}); vb.push_back({b,l}); } if (total_a != total_b) { puts("NIE"); return; } sort(va.begin(), va.end(), greater<pair<int,int>>()); sort(vb.begin(), vb.end(), greater<pair<int,int>>()); ll la = 0, lb = 0; ll sa = 0, sb = 0; int wska = 0, wskb = 0; while (wska < n) { if (la + va[wska].second <= lb + vb[wskb].second) { la += va[wska].second; sa += (ll)va[wska].first*va[wska].second; wska++; if (sa < sb + (ll)vb[wskb].first*(la-lb)) { puts("NIE"); return; } } else { lb += vb[wskb].second; sb += (ll)vb[wskb].first*vb[wskb].second; wskb++; if (sa + (ll)va[wska].first*(lb-la) < sb) { puts("NIE"); return; } } } puts("TAK"); } int main() { int tt; scanf("%d", &tt); while (tt--) { solve(); } } |
English