/*
Notice:
- This account submits solutions that result from the collaboration of two (non-Polish) individuals.
- We acknowledge that our participation is completely unofficial.
- We just want to be able to submit our solutions until the end of the week. Thank you :)!
*/
#include <cstdio>
/*
Notice:
- This account submits solutions that result from the collaboration of two (non-Polish) individuals.
- We acknowledge that our participation is completely unofficial.
- We just want to be able to submit our solutions until the end of the week. Thank you :)!
*/
#include <cstring>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long int64;
const int64 kInf = (1LL<<60);
struct Cup {
int64 v, t;
int type;
};
string Solve(istream& cin) {
int n;
cin >> n;
vector<Cup> cups;
for (int i = 1; i <= n; ++i) {
int64 v, t1, t2;
cin >> v >> t1 >> t2;
cups.push_back(Cup{v, t1, 0});
cups.push_back(Cup{v, t2, 1});
}
sort(cups.begin(), cups.end(), [&](const Cup& a, const Cup& b) {
return a.t < b.t;
});
int64 cx = 0, cy = 0;
for (auto &cup : cups) {
if (cup.type == 0) {
if (cx > 0 && cy < cx * cup.t) {
return "NIE";
}
cx -= cup.v;
cy -= cup.v * cup.t;
} else {
cx += cup.v;
cy += cup.v * cup.t;
}
}
if (cx == 0 && cy == 0)
return "TAK";
return "NIE";
}
int main() {
int test;
cin >> test;
for (;test; --test) {
cout << Solve(cin) << "\n";
}
}
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 | /* Notice: - This account submits solutions that result from the collaboration of two (non-Polish) individuals. - We acknowledge that our participation is completely unofficial. - We just want to be able to submit our solutions until the end of the week. Thank you :)! */ #include <cstdio> /* Notice: - This account submits solutions that result from the collaboration of two (non-Polish) individuals. - We acknowledge that our participation is completely unofficial. - We just want to be able to submit our solutions until the end of the week. Thank you :)! */ #include <cstring> #include <iostream> #include <vector> #include <algorithm> using namespace std; typedef long long int64; const int64 kInf = (1LL<<60); struct Cup { int64 v, t; int type; }; string Solve(istream& cin) { int n; cin >> n; vector<Cup> cups; for (int i = 1; i <= n; ++i) { int64 v, t1, t2; cin >> v >> t1 >> t2; cups.push_back(Cup{v, t1, 0}); cups.push_back(Cup{v, t2, 1}); } sort(cups.begin(), cups.end(), [&](const Cup& a, const Cup& b) { return a.t < b.t; }); int64 cx = 0, cy = 0; for (auto &cup : cups) { if (cup.type == 0) { if (cx > 0 && cy < cx * cup.t) { return "NIE"; } cx -= cup.v; cy -= cup.v * cup.t; } else { cx += cup.v; cy += cup.v * cup.t; } } if (cx == 0 && cy == 0) return "TAK"; return "NIE"; } int main() { int test; cin >> test; for (;test; --test) { cout << Solve(cin) << "\n"; } } |
English