#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; } |