def wybierz_finalistow(n, zawodnicy):
# Usuwamy zawodników, którzy nie mogą lub nie chcą uczestniczyć w finale
mozliwi_zawodnicy = [(i + 1, x) for i, (s, x) in enumerate(zawodnicy) if s == "TAK"]
# Sortowanie według pozycji w rankingu (kolejność wejścia jest już odpowiednia)
# Wybieramy pierwszych 10 zawodników niezależnie od liczby wcześniejszych finałów
finalisci = [num for num, _ in mozliwi_zawodnicy[:10]]
# Wybieramy kolejnych 10, pomijając tych, którzy byli w finale co najmniej 2 razy
pozostali = [(num, x) for num, x in mozliwi_zawodnicy[10:] if x < 2]
finalisci += [num for num, _ in pozostali[:10]]
# Sortujemy listę finalistów w kolejności rosnącej numerów
finalisci.sort()
return finalisci
# Wczytywanie danych
n = int(input().strip())
zawodnicy = [tuple(input().split()) for _ in range(n)]
zawodnicy = [(s, int(x)) for s, x in zawodnicy]
# Wywołanie funkcji i wypisanie wyniku
wynik = wybierz_finalistow(n, zawodnicy)
print(" ".join(map(str, wynik)))
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 | def wybierz_finalistow(n, zawodnicy): # Usuwamy zawodników, którzy nie mogą lub nie chcą uczestniczyć w finale mozliwi_zawodnicy = [(i + 1, x) for i, (s, x) in enumerate(zawodnicy) if s == "TAK"] # Sortowanie według pozycji w rankingu (kolejność wejścia jest już odpowiednia) # Wybieramy pierwszych 10 zawodników niezależnie od liczby wcześniejszych finałów finalisci = [num for num, _ in mozliwi_zawodnicy[:10]] # Wybieramy kolejnych 10, pomijając tych, którzy byli w finale co najmniej 2 razy pozostali = [(num, x) for num, x in mozliwi_zawodnicy[10:] if x < 2] finalisci += [num for num, _ in pozostali[:10]] # Sortujemy listę finalistów w kolejności rosnącej numerów finalisci.sort() return finalisci # Wczytywanie danych n = int(input().strip()) zawodnicy = [tuple(input().split()) for _ in range(n)] zawodnicy = [(s, int(x)) for s, x in zawodnicy] # Wywołanie funkcji i wypisanie wyniku wynik = wybierz_finalistow(n, zawodnicy) print(" ".join(map(str, wynik))) |
English