#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct Herbata {
long long t,p;
Herbata(int p, int t):t(t),p(p){}
inline bool operator<(const Herbata &x) const {return t<x.t;}
};
void solve() {
int n;
cin >> n;
vector<Herbata> przed,po;
for (int i=0;i<n;i++) {
int l,a,b;
cin >> l >> a >> b;
przed.push_back(Herbata(l,a));
po.push_back(Herbata(l,b));
}
sort(przed.begin(),przed.end());
sort(po.begin(),po.end());
//for (auto &it:po) {cout << it.p << " " << it.t <<endl;}
int ipo=0,iprzed=0;
long long energia = 0;
while (energia>=0 && ipo<n && iprzed<n) {
//cout <<po[ipo].p << " "<<po[ipo].t<<" ; "<<przed[iprzed].p<<" "<<przed[iprzed].t<<endl;
if (po[ipo].p<przed[iprzed].p) {
energia += (po[ipo].p)*(po[ipo].t-przed[iprzed].t);
przed[iprzed].p -= po[ipo].p;
ipo++;
} else {
energia += (przed[iprzed].p)*(po[ipo].t-przed[iprzed].t);
po[ipo].p -= przed[iprzed].p;
iprzed++;
}
//cout << energia << endl;
}
cout << (energia==0 ? "TAK" : "NIE")<<endl;
}
int main() {
ios_base::sync_with_stdio(0);
int t;
cin >> t;
while (t--)
solve();
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 | #include <iostream> #include <algorithm> #include <vector> using namespace std; struct Herbata { long long t,p; Herbata(int p, int t):t(t),p(p){} inline bool operator<(const Herbata &x) const {return t<x.t;} }; void solve() { int n; cin >> n; vector<Herbata> przed,po; for (int i=0;i<n;i++) { int l,a,b; cin >> l >> a >> b; przed.push_back(Herbata(l,a)); po.push_back(Herbata(l,b)); } sort(przed.begin(),przed.end()); sort(po.begin(),po.end()); //for (auto &it:po) {cout << it.p << " " << it.t <<endl;} int ipo=0,iprzed=0; long long energia = 0; while (energia>=0 && ipo<n && iprzed<n) { //cout <<po[ipo].p << " "<<po[ipo].t<<" ; "<<przed[iprzed].p<<" "<<przed[iprzed].t<<endl; if (po[ipo].p<przed[iprzed].p) { energia += (po[ipo].p)*(po[ipo].t-przed[iprzed].t); przed[iprzed].p -= po[ipo].p; ipo++; } else { energia += (przed[iprzed].p)*(po[ipo].t-przed[iprzed].t); po[ipo].p -= przed[iprzed].p; iprzed++; } //cout << energia << endl; } cout << (energia==0 ? "TAK" : "NIE")<<endl; } int main() { ios_base::sync_with_stdio(0); int t; cin >> t; while (t--) solve(); return 0; } |
English