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
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <string>

int main()
{
	uint16_t nZawodnikow = 0;
	uint16_t nFinalistow = 0;
	uint16_t pierwszaDycha = 10;
	std::string zawodnik;
	std::string finalisci = "";

	std::ios::sync_with_stdio(false);

	std::getline(std::cin, zawodnik);
	nZawodnikow = std::stoi(zawodnik);

	for (uint16_t i = 0; i < nZawodnikow; i++)
	{
		// Wszyscy finalisci wybrani
		if (nFinalistow == 20)
			break;

		std::getline(std::cin, zawodnik);

		// Usuwanie niechcacych
		if (zawodnik.find("N", 0) == 0)
			continue;

		// Jesli pierwsze 10 -> zaakceptuj
		if (pierwszaDycha > 0)
		{
			finalisci += std::to_string(i+1) + " ";
			pierwszaDycha--;
			nFinalistow++;
			continue;
		}

		// Jesli wiecej niz 2 finaly -> usun
		if (std::stoi(zawodnik.substr(4)) >= 2)
			continue;

		// Dodaj finaliste
		finalisci += std::to_string(i+1) + " ";
		nFinalistow++;
	}

	// Usuniecie ostatniej spacji
	finalisci.erase(finalisci.end() - 1, finalisci.end());

	// Wyswietlenie wyniku
	std::cout << finalisci << std::flush;

	return 0;
}