#include <cstdio> #include <vector> #include <algorithm> using namespace std; #define FOR(i,a,b) for(int (i)=(a); (i)!=(b); ++(i)) #define LLI long long int int n, l, a, b; void solve() { scanf("%d", &n); vector<pair<int,int> > SRC(n), DST(n); FOR(i,0,n) { scanf("%d %d %d", &l, &a, &b); SRC[i] = make_pair(a, l); DST[i] = make_pair(b, l); } sort(SRC.begin(), SRC.end()); sort(DST.begin(), DST.end()); LLI extra = 0; while (!SRC.empty() && !DST.empty()) { pair<int,int> &src = SRC.back(); pair<int,int> &dst = DST.back(); int len = min(src.second, dst.second); extra += (LLI)len * ((LLI)src.first - (LLI)dst.first); if (extra < 0) { printf("NIE\n"); return; } src.second -= len; dst.second -= len; if (src.second == 0) SRC.pop_back(); if (dst.second == 0) DST.pop_back(); } if (DST.empty() && SRC.empty() && extra == 0) { printf("TAK\n"); return; } printf("NIE\n"); } int z; int main() { scanf("%d", &z); while (z--) solve(); }
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 | #include <cstdio> #include <vector> #include <algorithm> using namespace std; #define FOR(i,a,b) for(int (i)=(a); (i)!=(b); ++(i)) #define LLI long long int int n, l, a, b; void solve() { scanf("%d", &n); vector<pair<int,int> > SRC(n), DST(n); FOR(i,0,n) { scanf("%d %d %d", &l, &a, &b); SRC[i] = make_pair(a, l); DST[i] = make_pair(b, l); } sort(SRC.begin(), SRC.end()); sort(DST.begin(), DST.end()); LLI extra = 0; while (!SRC.empty() && !DST.empty()) { pair<int,int> &src = SRC.back(); pair<int,int> &dst = DST.back(); int len = min(src.second, dst.second); extra += (LLI)len * ((LLI)src.first - (LLI)dst.first); if (extra < 0) { printf("NIE\n"); return; } src.second -= len; dst.second -= len; if (src.second == 0) SRC.pop_back(); if (dst.second == 0) DST.pop_back(); } if (DST.empty() && SRC.empty() && extra == 0) { printf("TAK\n"); return; } printf("NIE\n"); } int z; int main() { scanf("%d", &z); while (z--) solve(); } |