#include <bits/stdc++.h>
#define fi first
#define se second
#define ll long long
#define ld long double
#define pb push_back
#define vi vector<int>
using namespace std;
struct cup {
int v, t;
};
bool operator<(cup a, cup b) {
return a.t > b.t;
}
struct beaker {
ll t;
};
bool solve() {
int n;
vector<cup> A, B;
cin >> n;
A.resize(n);
B.resize(n);
int l, a, b;
for (int i = 0; i < n; i++) {
cin >> l >> a >> b;
A[i].v = B[i].v = l;
A[i].t = a;
B[i].t = b;
}
sort(A.begin(), A.end());
sort(B.begin(), B.end());
int x, y, step;
ll ab, bb;
ab = bb = x = y = 0;
while (x < n && y < n) {
step = min(A[x].v, B[y].v);
A[x].v -= step;
B[y].v -= step;
ab += step * A[x].t;
bb += step * B[y].t;
if (A[x].v == 0 && x < n)
x++;
if (B[y].v == 0 && y < n)
y++;
if (ab < bb) {
return false;
}
}
if (ab != bb)
return false;
return true;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int z;
cin >> z;
for (int zz = 0; zz < z; zz++) {
bool ans = solve();
cout << (ans ? "TAK" : "NIE") << endl;
}
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 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 | #include <bits/stdc++.h> #define fi first #define se second #define ll long long #define ld long double #define pb push_back #define vi vector<int> using namespace std; struct cup { int v, t; }; bool operator<(cup a, cup b) { return a.t > b.t; } struct beaker { ll t; }; bool solve() { int n; vector<cup> A, B; cin >> n; A.resize(n); B.resize(n); int l, a, b; for (int i = 0; i < n; i++) { cin >> l >> a >> b; A[i].v = B[i].v = l; A[i].t = a; B[i].t = b; } sort(A.begin(), A.end()); sort(B.begin(), B.end()); int x, y, step; ll ab, bb; ab = bb = x = y = 0; while (x < n && y < n) { step = min(A[x].v, B[y].v); A[x].v -= step; B[y].v -= step; ab += step * A[x].t; bb += step * B[y].t; if (A[x].v == 0 && x < n) x++; if (B[y].v == 0 && y < n) y++; if (ab < bb) { return false; } } if (ab != bb) return false; return true; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int z; cin >> z; for (int zz = 0; zz < z; zz++) { bool ans = solve(); cout << (ans ? "TAK" : "NIE") << endl; } return 0; } |
English