问题描述 |
---|
对于一个单链表:L1 → L2 → ... → Ln → NULL,如果把 Ln 的下一结点地址改为 L1 的地址,那我们称该链表为循环链表。 现在给你 n 个节点,请你帮忙统计一下单链表和循环链表的数量。 注意:在本题中,单链表的最后一个节点必须指向 NULL,否则我们不认为它是单链表。 |
输入描述 |
第一行是一个正整数 n 表示节点的数量。(1 ≤ n ≤ 105) 接下来 n 行,每行格式为: 其中 数据约定结点的地址均为 5 位非负整数,NULL 地址用 -1 表示,每个节点最多只会被一个节点作为下一节点。 |
输出描述 |
第一行输出一个整数表示单链表的数量 X。 第二行按照从小到大的顺序输出 X 个数字,它们分别表示这些单链表第一个节点的地址,每两个数字之间用空格隔开,最后一个数字后面没有空格;特别地,如果没有单链表,本行输出-1。 第三行输出一个整数表示循环链表的数量。 第四行输出一个整数,这个整数表示所有循环链表中,数据之和最大的那个循环链表的数据之和;特别地,如果没有循环链表,本行输出0。 |
样例输入复制样例 |
6 01234 100 -1 99999 314 -1 01010 456 99999 00001 333 00002 00003 222 00001 00002 111 00003 |
样例输出 |
2 01010 01234 1 666 |
相关 |