#include <cstdio> #include <map> bool her(void) { int n; long long sa = 0LL, sb = 0LL; std::map<int, int> A, B; scanf("%d\n", &n); for (int i = 0; i < n; i++) { int l, a, b; scanf("%d%d%d", &l, &a, &b); A[a] += l; B[b] += l; sa += static_cast<long long>(l) * static_cast<long long>(a); sb += static_cast<long long>(l) * static_cast<long long>(b); } if (sa != sb) return 0; auto iA = A.begin(); long long na = 0LL, nb = 0LL; sa = sb = 0LL; for (auto iB = B.begin(); iB != B.end(); ++iB) { nb += iB->second; sb += iB->first * iB->second; while (na < nb) { long long d = nb - na; if (iA->second <= d) { na += iA->second; sa += static_cast<long long>(iA->first) * static_cast<long long>(iA->second); iA->second = 0; ++iA; } else { na += d; sa += static_cast<long long>(iA->first) * d; iA->second -= d; } } if (sa > sb) return 0; } return 1; } int main(void) { int i, t; scanf("%d", &t); for (i = 0; i < t; i++) printf("%s\n", her() ? "TAK" : "NIE"); 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 60 61 62 63 64 65 66 67 | #include <cstdio> #include <map> bool her(void) { int n; long long sa = 0LL, sb = 0LL; std::map<int, int> A, B; scanf("%d\n", &n); for (int i = 0; i < n; i++) { int l, a, b; scanf("%d%d%d", &l, &a, &b); A[a] += l; B[b] += l; sa += static_cast<long long>(l) * static_cast<long long>(a); sb += static_cast<long long>(l) * static_cast<long long>(b); } if (sa != sb) return 0; auto iA = A.begin(); long long na = 0LL, nb = 0LL; sa = sb = 0LL; for (auto iB = B.begin(); iB != B.end(); ++iB) { nb += iB->second; sb += iB->first * iB->second; while (na < nb) { long long d = nb - na; if (iA->second <= d) { na += iA->second; sa += static_cast<long long>(iA->first) * static_cast<long long>(iA->second); iA->second = 0; ++iA; } else { na += d; sa += static_cast<long long>(iA->first) * d; iA->second -= d; } } if (sa > sb) return 0; } return 1; } int main(void) { int i, t; scanf("%d", &t); for (i = 0; i < t; i++) printf("%s\n", her() ? "TAK" : "NIE"); return 0; } |