[F1] Reprezentacja grafu
Języki:
pas
c
cpp
java
Limit czasu: 30.0 s
Limit pamięci: 16 MB
Limit rozmiaru rozwiązania: 100 kB
Napisz program, który wczyta dwie liczby naturalne – N (liczba wierzchołków) oraz M (liczba krawędzi) (N,M<10000). Następnie wczyta M par liczb naturalnych z przedziału [1..N], odpowiadających krawędziom grafu nieskierowanego.
Program powinien wydrukować na ekranie dwie tablice realizujące listy sąsiedztwa.
Tablica nr 1 (N+1 elementów) powinna zawierać granice list sąsiedztwa poszczególnych wierzchołków wyznaczone w ten sposób, że lista sąsiadów wierzchołka o nr i znajduje się w tablicy nr 2 na pozycjach [i]..[i+1]-1.
Tablica nr 2 (2M elementów) powinna zawierać sklejone listy sąsiedztwa wszystkich wierzchołków grafu w porządku rosnącym. Każda ze sklejanych list sąsiedztwa powinna być posortowana rosnąco.
Przykładowe dane wejściowe:
Przykładowe dane wyjściowe:
Program powinien wydrukować na ekranie dwie tablice realizujące listy sąsiedztwa.
Tablica nr 1 (N+1 elementów) powinna zawierać granice list sąsiedztwa poszczególnych wierzchołków wyznaczone w ten sposób, że lista sąsiadów wierzchołka o nr i znajduje się w tablicy nr 2 na pozycjach [i]..[i+1]-1.
Tablica nr 2 (2M elementów) powinna zawierać sklejone listy sąsiedztwa wszystkich wierzchołków grafu w porządku rosnącym. Każda ze sklejanych list sąsiedztwa powinna być posortowana rosnąco.
Przykładowe dane wejściowe:
5 7
2 4
1 5
2 3
3 4
4 5
5 2
2 1
Przykładowe dane wyjściowe:
0 2 6 8 11 14
2 5 1 3 4 5 2 4 2 3 5 1 2 4