Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
DFS - Depth First Search |
Jasiu założył konto w znanym serwisie społecznościowym i po tygodniu ma już wielu znajomych, a liczba ta ciągle rośnie, bo Jasiu jest bardzo aktywny. Nasz bohater wysyła zaproszenia znajomym swoich nowych znajomych, ale nie zawsze może liczyć na akceptację i zrozumienie. Jasiu chciałby wiedzieć czy jest wstanie znaleźć znajomego , którego jeszcze nie dodał do swojego profilu, przeglądając profile swoich znajomych oraz profile znajomych znajomych itd. Ty, jako administrator serwisu wychodzisz naprzeciw oczekiwaniom Jasia i zaraz napiszesz nową funkcję zwiększając atrakcyjność serwisu. Dla ułatwienia załóżmy, że dane wejściowe reprezentują maksymalnie dwie grupy znajomych.
Wejście
Pierwszy wiersz zawiera dwie liczby n i m, gdzie n to liczba wszystkich użytkowników serwisu (1 ≤ n ≤ 100000), a m to liczba par osób, które się znają (1 ≤ m ≤ 500000). Każdy z kolejnych m wierszy składa się z dwóch liczb całkowitych a i b (1 ≤ a, b ≤ n, a≠b), które opisują, że użytkownicy a i b są znajomymi. Relacja znajomości w rozumieniu Jasia jest symetryczna i przechodnia. W ostatnim wierszu dwie liczby x i y, dla których należy określić, czy znajomy o numerze x jest wstanie znaleźć znajomego o numerze y.
Wyjście
Napis TAK, jeśli użytkownik x jest wstanie wyszukać znajomego y lub NIE w przeciwnym razie.
Przykłąd
Wejście: 9 7 2 1 1 9 3 4 4 5 7 5 4 8 4 7 2 9 Wyjście: TAK
Dodane przez: | Marcin Kasprowicz |
Data dodania: | 2025-01-03 |
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 |