/*
Zadnie: Herbata [B] (her)
Autor: Adam Szeruda
Potyczki Algorytmiczne 2019
*/
#include <iostream>
using namespace std;
#define DBG(x)
#ifndef DBG
#define DBG(x) cerr << #x << " = " << x << '\n'
#endif
#define FOR(i, b, e) for (int i = (b); i < (int)(e); i++)
#define REP(i, n) FOR(i, 0, n)
typedef long long ll;
typedef unsigned long long ull;
int l[100009];
int a[100009];
int b[100009];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t, n;
ull QM, // Q * M
QpM, // Q' * M
E, M;
double Q, SM, SpM;
cin >> t;
while (t--)
{
M = QM = QpM = SM = SpM = 0;
cin >> n;
REP(i, n)
{
cin >> l[i] >> a[i] >> b[i];
M += l[i];
QM += l[i] * b[i];
QpM += l[i] * a[i];
}
Q = (double)QM / M;
DBG(M);
DBG(QM);
DBG(QpM);
DBG(Q);
REP(i, n)
{
SM += abs(b[i] - Q) * l[i];
SpM += abs(a[i] - Q) * l[i];
}
DBG(SM);
DBG(SpM);
if (QM != QpM || SM > SpM)
{
cout << "NIE\n";
continue;
}
cout << "TAK\n";
}
}
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 | /* Zadnie: Herbata [B] (her) Autor: Adam Szeruda Potyczki Algorytmiczne 2019 */ #include <iostream> using namespace std; #define DBG(x) #ifndef DBG #define DBG(x) cerr << #x << " = " << x << '\n' #endif #define FOR(i, b, e) for (int i = (b); i < (int)(e); i++) #define REP(i, n) FOR(i, 0, n) typedef long long ll; typedef unsigned long long ull; int l[100009]; int a[100009]; int b[100009]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t, n; ull QM, // Q * M QpM, // Q' * M E, M; double Q, SM, SpM; cin >> t; while (t--) { M = QM = QpM = SM = SpM = 0; cin >> n; REP(i, n) { cin >> l[i] >> a[i] >> b[i]; M += l[i]; QM += l[i] * b[i]; QpM += l[i] * a[i]; } Q = (double)QM / M; DBG(M); DBG(QM); DBG(QpM); DBG(Q); REP(i, n) { SM += abs(b[i] - Q) * l[i]; SpM += abs(a[i] - Q) * l[i]; } DBG(SM); DBG(SpM); if (QM != QpM || SM > SpM) { cout << "NIE\n"; continue; } cout << "TAK\n"; } } |
English