#include <iostream>
#include<set>
using namespace std;
class Athlete{
public :
string n;
double t;
Athlete( string n, double t) : n( n) , t( t) { }
bool operator< ( const Athlete a) const {
return t < a.t ;
}
} ;
Athlete findFastestRunner( const set< Athlete> & s) {
return * s.begin ( ) ;
}
void printResultsInRange( const set< pair< int , Athlete>> & results, int fromPlace, int toPlace) {
for ( set< pair< int , Athlete>> :: const_iterator it = results.begin ( ) ; it ! = results.end ( ) ; ++ it) {
int place = it- > first;
if ( place >= fromPlace && place <= toPlace) {
cout << place << ". " << it- > second.n << " - " << it- > second.t << " s" << endl;
}
}
}
int main( ) {
set< Athlete> s;
set< Athlete> :: iterator iter;
s.insert ( Athlete( "James" , 45.8 ) ) ; s.insert ( Athlete( "Alex" , 51.9 ) ) ;
s.insert ( Athlete( "Nikolas" , 47.9 ) ) ; s.insert ( Athlete( "Luka" , 49.6 ) ) ;
for ( const auto & athlete : s) {
cout << athlete.n << " - " << athlete.t << " s" << endl;
}
Athlete f = findFastestRunner( s) ;
cout << "\F astest: " << f.n << "; time: " << f.t << " s" << endl;
set< pair< int , Athlete>> results;
int place = 1 ;
for ( const auto & athlete : s) {
results.insert ( { place, athlete} ) ;
place++ ;
}
cout << "Result:" << endl;
for ( const auto & res : results) {
cout << res.first << ". " << res.second .n << " - " << res.second .t << " s" << endl;
}
cout << "Results from 2nd to 3rd place:" << endl;
printResultsInRange( results, 2 , 3 ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxzZXQ+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQXRobGV0ZXsKcHVibGljOiAKCXN0cmluZyBuOwoJZG91YmxlIHQ7IAoJQXRobGV0ZShzdHJpbmcgbiwgZG91YmxlIHQpIDogbihuKSwgdCh0KSB7fQoJYm9vbCBvcGVyYXRvcjwgKGNvbnN0IEF0aGxldGUgYSljb25zdCB7CgkJcmV0dXJuIHQgPCBhLnQ7CgkJfQp9OwoKQXRobGV0ZSBmaW5kRmFzdGVzdFJ1bm5lcihjb25zdCBzZXQ8QXRobGV0ZT4mIHMpIHsKICAgIHJldHVybiAqcy5iZWdpbigpOwp9Cgp2b2lkIHByaW50UmVzdWx0c0luUmFuZ2UoY29uc3Qgc2V0PHBhaXI8aW50LCBBdGhsZXRlPj4mIHJlc3VsdHMsIGludCBmcm9tUGxhY2UsIGludCB0b1BsYWNlKSB7CiAgICBmb3IgKHNldDxwYWlyPGludCwgQXRobGV0ZT4+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHJlc3VsdHMuYmVnaW4oKTsgaXQgIT0gcmVzdWx0cy5lbmQoKTsgKytpdCkgewogICAgICAgIGludCBwbGFjZSA9IGl0LT5maXJzdDsKICAgICAgICBpZiAocGxhY2UgPj0gZnJvbVBsYWNlICYmIHBsYWNlIDw9IHRvUGxhY2UpIHsKICAgICAgICAgICAgY291dCA8PCBwbGFjZSA8PCAiLiAiIDw8IGl0LT5zZWNvbmQubiA8PCAiIC0gIiA8PCBpdC0+c2Vjb25kLnQgPDwgIiBzIiA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKXsKCXNldDxBdGhsZXRlPiBzOwoJc2V0PEF0aGxldGU+OjppdGVyYXRvciBpdGVyOwoJcy5pbnNlcnQoQXRobGV0ZSgiSmFtZXMiLCA0NS44KSk7IHMuaW5zZXJ0KEF0aGxldGUoIkFsZXgiLCA1MS45KSk7CglzLmluc2VydChBdGhsZXRlKCJOaWtvbGFzIiwgNDcuOSkpOyBzLmluc2VydChBdGhsZXRlKCJMdWthIiwgNDkuNikpOwoJZm9yIChjb25zdCBhdXRvJiBhdGhsZXRlIDogcykgewogICAgICAgIGNvdXQgPDwgYXRobGV0ZS5uIDw8ICIgLSAiIDw8IGF0aGxldGUudCA8PCAiIHMiIDw8IGVuZGw7CiAgICB9CiAgICBBdGhsZXRlIGYgPSBmaW5kRmFzdGVzdFJ1bm5lcihzKTsKICAgIGNvdXQgPDwgIlxGYXN0ZXN0OiAiIDw8IGYubiA8PCAiOyB0aW1lOiAiIDw8IGYudCA8PCAiIHMiIDw8IGVuZGw7CiAgICAKICAgIHNldDxwYWlyPGludCwgQXRobGV0ZT4+IHJlc3VsdHM7CiAgICBpbnQgcGxhY2UgPSAxOwogICAgZm9yIChjb25zdCBhdXRvJiBhdGhsZXRlIDogcykgewogICAgICAgIHJlc3VsdHMuaW5zZXJ0KHtwbGFjZSwgYXRobGV0ZX0pOwogICAgICAgIHBsYWNlKys7CiAgICB9CgogICBjb3V0IDw8ICJSZXN1bHQ6Ijw8ZW5kbDsKICAgIGZvciAoY29uc3QgYXV0byYgcmVzIDogcmVzdWx0cykgewogICAgICAgIGNvdXQgPDwgcmVzLmZpcnN0IDw8ICIuICIgPDwgcmVzLnNlY29uZC5uIDw8ICIgLSAiIDw8IHJlcy5zZWNvbmQudCA8PCAiIHMiIDw8IGVuZGw7CiAgICB9CiAgICAKICAgIGNvdXQgPDwgIlJlc3VsdHMgZnJvbSAybmQgdG8gM3JkIHBsYWNlOiIgPDwgZW5kbDsKICAgIHByaW50UmVzdWx0c0luUmFuZ2UocmVzdWx0cywgMiwgMyk7CgoKICAgIHJldHVybiAwOwp9CgoKCgo=