nth_element - zadanie SPOJ
Ostatnio zmodyfikowano 2014-08-06 14:24
killermannnnn Temat założony przez niniejszego użytkownika |
nth_element - zadanie SPOJ » 2014-08-06 14:24:32 Rozwiązuje zadanie ze SPOJ'a (tutaj treść: pl.spoj.com/problems/KC022/) i mam problem. Musze wypisać n-tą co do wielkości liczbę z podanych na wejściu, a jeżeli takiej liczby nie ma musze wupisać "-". Chcę to zrobić za pomoca wektora i funkcji nth_element bo pętla zabiera za dużo czasu. Problem polega na tym że nie wiem jak napisać instrukcję, gdy n-ta liczba w danym ciągu nie istnieje. Pomoże ktoś ? #include <iostream> #include <cstdio> #include <algorithm> #include <functional> #include <vector>
using namespace std;
int main() { while( !cin.eof() ) { start: long long int liczba_szukana; cin >> liczba_szukana; if( cin.peek() == '\n' ) { cout << "-" << endl; goto start; } long long int x; vector < int > punkty; while( cin >> x ) { punkty.push_back( x ); if( cin.peek() == '\n' ) break; } if( punkty.size() < liczba_szukana ) { cout << "-" << endl; goto start; } nth_element( punkty.begin(), punkty.begin() + 1, punkty.end(), greater < int >() ); cout << punkty[ liczba_szukana - 1 ] << endl; } }
|
|
« 1 » |