Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
CMI_01_38 - Reprezentant (HARD) |
Tablica to struktura, ktróra może przechowywać wiele elementów tego samego typu. Pojedynczy taki element sklada się z numeru, tzw. indesu, oraz z watości przypisanej do tego numeru np. tab[4] = 12 oznacza, że element o numerze 4 przechowuje wartość równą 12.
Dana komórka tablicy jest reprezentantem danej tablicy, jeśli jej indeks jest równe jej wartości np. tab[3] = 3 lub tab[0] = 0.
Zadanie. Sprawdź, czy istnieje droga jaką pokona twój program z ustalonego indeksu tablicy, która wyszukuje reprezentanta. Postępuj zgodnie z algorytmem:
- Wczytaj indeks tablicy
- Jeśli dana komórka przechowuje reprezentanta, to wypisz "tak" i zakończ program.
- Jeśli dana komórka nie przechowuje reprezentanta, to skocz do komórki o indeksie równym wartości tej komórki.
- Kroki 2 - 3 powtarzaj do momentu znalezienia reprezentanata lub wypisz napis "nie", jeśli taka droga nie istnieje.
Wejście
W pierwszym wierszu jedna liczba n (nie większa niż dwa miliony), określająca liczbę komórek tablicy.
W drugim wierszu n liczb z zakresu [0..n-1] będącymi wartościami kolejnych komórek tablicy.
W trzecim wierszu jedna liczba q określająca liczbę zapytań (nie więcej niż 100 000).
W kolejnych q wierszach zapytania w postaci numeru komórki tablicy, z której rozpoczynamy poszukiwania reprezentanta.
Wyjście
Sprecyzowane w powyższym algorytmie.
Przykład
Wejście: 5 1 0 4 2 4 3 3 2 0 Wyjście: tak tak nie
Dodane przez: | Marcin Kasprowicz |
Data dodania: | 2021-02-16 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM32-GCC MAWK BC C-CLANG NCSHARP CPP14-CLANG COBOL COFFEE D-CLANG D-DMD ELIXIR FANTOM FORTH GOSU GRV JS-MONKEY JULIA KTLN NIM OBJC OBJC-CLANG OCT PICO PROLOG R RACKET RUST SCM qobi CHICKEN SQLITE SWIFT UNLAMBDA VB.NET |