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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 #include using namespace std; bool sprawdzUjemne(int* tab, int n, int mi) { for (int i = 0; i < n; ++i) { if ((tab[i] - mi) < 0) { return false; } } return true; } bool sprawdz(int *tab, int n, int mi, int ma) { for (int i = 0; i < n; ++i) { if (tab[i] < mi) { return false; } if (tab[i] > ma) { return false; } } return true; } int mini(int *tab, int n) { int mi = INT32_MAX; for (int i = 0; i < n; ++i) { if (tab[i] < mi) { mi = tab[i]; } } return mi; } int maksi(int *tab, int n) { int ma = INT32_MIN; for (int i = 0; i < n; ++i) { if (tab[i] > ma) { ma = tab[i]; } } return ma; } bool sprawdzSumy(int *l, int* a, int* b, int n) { unsigned long long suma_a = 0; unsigned long long suma_b = 0; for (int i = 0; i < n; ++i) { suma_a += (l[i] * a[i]); suma_b += (l[i] * b[i]); } if (suma_a == suma_b) { return true; } return false; } int main() { int t; cin >> t; for (int j = 0; j < t; ++j) { int n; cin >> n; int *l = new int[n]; int *a = new int[n]; int *b = new int[n]; for (int i = 0; i < n; ++i) { cin >> l[i] >> a[i] >> b[i]; } if (sprawdzSumy(l, a, b, n) == false) { cout << "NIE\n"; } else { if (sprawdz(b, n, mini(a, n), maksi(a, n)) == false) { cout << "NIE\n"; } else { if (sprawdzUjemne(b, n, mini(a, n)) == false) { cout << "NIE\n"; } else { cout << "TAK\n"; } } } } return 0; }