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))) |