#include<iostream> #include<algorithm> using namespace std; class Potwor { public: long long int ileTrac, ileZysk, numer; Potwor() {} friend bool operator < (const Potwor & pot1, const Potwor & pot2) { long long int zysk1 = pot1.ileZysk - pot1.ileTrac, zysk2 = pot2.ileZysk - pot2.ileTrac; if(zysk1 < 0 && zysk2 >= 0) return false; if(zysk1 >= 0 && zysk2 < 0) return true; if(zysk1 >= 0 && zysk2 >= 0) return pot1.ileTrac < pot2.ileTrac; return !(pot1.ileTrac < pot2.ileTrac); } }; const int ROZMIAR = 100100; long long int ile, zycie; Potwor tab[ROZMIAR]; int main() { ios_base::sync_with_stdio(false); cin >> ile >> zycie; for(int i = 0; i < ile; i++) { cin >> tab[i].ileTrac >> tab[i].ileZysk; tab[i].numer = i + 1; } sort(tab, tab + ile); for(int i = 0; i < ile; i++) { zycie -= tab[i].ileTrac; if(zycie <= 0) { cout << "NIE"; return 0; } zycie += tab[i].ileZysk; } cout << "TAK" << endl; for(int i = 0; i < ile; i++) { cout << tab[i].numer << " "; } 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 | #include<iostream> #include<algorithm> using namespace std; class Potwor { public: long long int ileTrac, ileZysk, numer; Potwor() {} friend bool operator < (const Potwor & pot1, const Potwor & pot2) { long long int zysk1 = pot1.ileZysk - pot1.ileTrac, zysk2 = pot2.ileZysk - pot2.ileTrac; if(zysk1 < 0 && zysk2 >= 0) return false; if(zysk1 >= 0 && zysk2 < 0) return true; if(zysk1 >= 0 && zysk2 >= 0) return pot1.ileTrac < pot2.ileTrac; return !(pot1.ileTrac < pot2.ileTrac); } }; const int ROZMIAR = 100100; long long int ile, zycie; Potwor tab[ROZMIAR]; int main() { ios_base::sync_with_stdio(false); cin >> ile >> zycie; for(int i = 0; i < ile; i++) { cin >> tab[i].ileTrac >> tab[i].ileZysk; tab[i].numer = i + 1; } sort(tab, tab + ile); for(int i = 0; i < ile; i++) { zycie -= tab[i].ileTrac; if(zycie <= 0) { cout << "NIE"; return 0; } zycie += tab[i].ileZysk; } cout << "TAK" << endl; for(int i = 0; i < ile; i++) { cout << tab[i].numer << " "; } return 0; } |