#CCFPB03D04. 模拟链表

    ID: 1063 传统题 1000ms 256MiB 尝试: 35 已通过: 15 难度: 2 上传者: 标签>来源CCF中学生计算机程序设计(基础篇)C++语法高级结构体

模拟链表

模拟链表。

在今后的图论题编程中,通常要运用邻接链表数据结构。由于动态指针比静态的数组的存取慢,很多0I选手就用数组模拟指针。现在就来学习一下这种方法的编程。 有N个点,编号从1到N。有M条边,每条边用连接的2个顶点表示,如:(3,8),表示顶点3和8之间的边(无向边)。请输出每个顶点通过边相邻的顶点。

输入格式:

第1行,N和M两个整数,N范围在[1..5000],M范围在[1..100000];

下面有M行,每行两个整数,表示一条边。

输出格式:

N行,第i行的第1个数k表示有多少边和i号顶点相连,后面有k个数,表示哪k个顶点和i连接为一条边,请按从小到大的次序依次输出。

样例

5 6
1 3
2 4
1 4
2 3
3 5
2 5
2 3 4
3 3 4 5
3 1 2 5
2 1 2
2 2 3

Limitation

1s, 1024KiB for each test case.