Kod powinien wyglądać jakoś tak:
if (ciag.size() < pozycja) {
cout << '-' << '\n';
} else if (ciag.size() == pozycja) {
cout << *ciag.cbegin() << '\n';
} else {
set<int>::iterator it = ciag.cend(); // auto it = ciag.cend();
while (pozycja--) it--;
cout << *it << '\n';
}
Prawdopodobnie masz jeszcze coś nie tak z wczytywaniem danych. Jest trochę udziwnione, więc nie chciało mi się go sprawdzać. Wkleiłem wczytywanie z mojego kodu i przeszło. Użyj std::getline i std::istringstream (do rozdzielenia łańcucha na liczby). Dodatkowo w tym przypadku lepiej nadałby się std::vector zamiast std::set.