4111:链表计数

时间限制:2 S   /  内存限制:65536 KB
AC:15   /  Submit:139
问题描述

对于一个单链表:L1 → L2 → ... → Ln → NULL,如果把 Ln 的下一结点地址改为 L1 的地址,那我们称该链表为循环链表。

现在给你 n 个节点,请你帮忙统计一下单链表和循环链表的数量。

注意:在本题中,单链表的最后一个节点必须指向 NULL,否则我们不认为它是单链表。

输入描述

第一行是一个正整数 n 表示节点的数量。(1 ≤ n ≤ 105

接下来 n 行,每行格式为:Address Data Next

其中Address是结点地址;Data是该结点保存的数据,为不超过 105 的正整数;Next是下一结点的地址。

数据约定结点的地址均为 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

相关

2023天梯赛校内选拔赛


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1