/* Na Olimpijadi su učestvovali takmičari iz mnogih zemalja. Dat je spisak zemalja učesnica, pri čemu je za sva- ku zemlju poznat broj osvojenih medalja i broj takmičara. Napisati program koji sortira zemlje po sledećim kriterijumima (od najvažnijeg do najmanje važnog): - broj medalja (nerastuće) - broj takmičara (neopadajuće) - ime zemlje (leksikografski rastuće) Sa standardnog ulaza se učitava broj zemalja n, a zatim u narednih n redova podaci o zemljama. Za svaku zemlju se učitava naziv (niska bez belina), broj medalja i broj takmičara. Na standardni izlaz ispisati nazive zemalja nakon sortiranja. U slučaju neispravnog ulaza, na standardni izlaz ispisati -1. */ #include #include #include using namespace std; struct Kandidat { string name; int br_medalja; int br_takmicara; }; bool uporedi(Kandidat &a, Kandidat &b) { if(a.br_medalja>b.br_medalja) return true; else if(a.br_medalja b.br_takmicara) return false; else return a.name < b.name; } int main() { int n; cin >> n; if(n<0) { cout << "-1" << endl; return -1; } vector niz(n); for(int i = 0; i < n; i++) { Kandidat curr; cin >> curr.name >> curr.br_medalja >> curr.br_takmicara; if(curr.br_medalja < 0 || curr.br_takmicara < 0) { cout << "-1" << endl; return -1; } niz[i] = curr; } sort(begin(niz), end(niz), uporedi); for(int i = 0; i < n; i++) { cout << niz[i].name << endl; } }