#include <cstdio> #include <vector> #include <algorithm> #include <iostream> using namespace std; int h, n, l, a, b, j, s; long long int w; bool q; vector<pair<int,int> >tab1, tab2; int main() { scanf("%d", &h); while(h--) { q=true; tab1.clear(); tab2.clear(); w=0; scanf("%d", &n); for(int i=0; i<n; i++) { scanf("%d %d %d", &l, &a, &b); pair<int,int>p1, p2; p1.first=a; p1.second=l; tab1.push_back(p1); p2.first=b; p2.second=l; tab2.push_back(p2); } sort(tab1.begin(), tab1.end()); sort(tab2.begin(), tab2.end()); int j=tab1.size()-1; for(int i=tab2.size()-1; i>=0; i--) { w=w+tab2[i].first*tab2[i].second; s=tab2[i].second; while(tab1[j].second<s) { w=w-tab1[j].first*tab1[j].second; s=s-tab1[j].second; tab1[j].second=0; j--; } tab1[j].second=tab1[j].second-s; w=w-tab1[j].first*s; if(w>0) q=false; } if(q && w==0) printf("TAK\n"); else printf("NIE\n"); } 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 | #include <cstdio> #include <vector> #include <algorithm> #include <iostream> using namespace std; int h, n, l, a, b, j, s; long long int w; bool q; vector<pair<int,int> >tab1, tab2; int main() { scanf("%d", &h); while(h--) { q=true; tab1.clear(); tab2.clear(); w=0; scanf("%d", &n); for(int i=0; i<n; i++) { scanf("%d %d %d", &l, &a, &b); pair<int,int>p1, p2; p1.first=a; p1.second=l; tab1.push_back(p1); p2.first=b; p2.second=l; tab2.push_back(p2); } sort(tab1.begin(), tab1.end()); sort(tab2.begin(), tab2.end()); int j=tab1.size()-1; for(int i=tab2.size()-1; i>=0; i--) { w=w+tab2[i].first*tab2[i].second; s=tab2[i].second; while(tab1[j].second<s) { w=w-tab1[j].first*tab1[j].second; s=s-tab1[j].second; tab1[j].second=0; j--; } tab1[j].second=tab1[j].second-s; w=w-tab1[j].first*s; if(w>0) q=false; } if(q && w==0) printf("TAK\n"); else printf("NIE\n"); } return 0; } |