#include <iostream> #include <vector> #include <algorithm> using namespace std; bool CheckCase(const vector<pair<int, int>> kubki){ long long suma =0LL,przesowalnosc =0LL; for(int i = 0; i<kubki.size();i++){ if(i!=0) przesowalnosc+=(kubki[i].first - kubki[i-1].first)*suma; if(przesowalnosc<0)return false; suma+=kubki[i].second; } return przesowalnosc==0LL; } int main(){ vector<pair<int, int>> kubki; int T,n; scanf("%d", &T); while(T--){ scanf("%d", &n); kubki.clear(); for(int i = 0; i<n;i++){ int l,a,b; scanf("%d %d %d", &l, &a, &b); kubki.push_back(make_pair(a,l));kubki.push_back(make_pair(b,-l)); }sort(kubki.begin(), kubki.end()); printf((CheckCase(kubki)?"TAK\n":"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 | #include <iostream> #include <vector> #include <algorithm> using namespace std; bool CheckCase(const vector<pair<int, int>> kubki){ long long suma =0LL,przesowalnosc =0LL; for(int i = 0; i<kubki.size();i++){ if(i!=0) przesowalnosc+=(kubki[i].first - kubki[i-1].first)*suma; if(przesowalnosc<0)return false; suma+=kubki[i].second; } return przesowalnosc==0LL; } int main(){ vector<pair<int, int>> kubki; int T,n; scanf("%d", &T); while(T--){ scanf("%d", &n); kubki.clear(); for(int i = 0; i<n;i++){ int l,a,b; scanf("%d %d %d", &l, &a, &b); kubki.push_back(make_pair(a,l));kubki.push_back(make_pair(b,-l)); }sort(kubki.begin(), kubki.end()); printf((CheckCase(kubki)?"TAK\n":"NIE\n")); } return 0; } |