#P2600. 第1题-头文件循环依赖检测

第1题-头文件循环依赖检测

题目内容

头文件循环依赖,指 a.ha.h 包含 b.hb.hb.hb.h 包含 c.hc.hc.hc.h 包含 a.ha.h

头文件循环依赖的缺点是,任一头文件修改,会导致循环依赖环的所有相关文件都需要重新编译,大大降低开发效率。

现开发一个工具,用来检测头文件是否循环依赖,若有循环依赖,则给出循环依赖的环中包含的文件数量。

用例保证至多只有一个循环依赖。没有循环包含头文件,因此返回 1-1 .

输入描述

3
a.h b.h c.h
b.h d.h
d.h a.h

第一行一个整数 nn ,表示记录数。

(1<=n<=10001<=n<=1000) 其后每一行,a.ha.h b.hb.h c.hc.h,表示头文件 a.ha.h 包含了两个头文件。

输出描述

3

解释:

a.h包含b.h
b.h包含d.h
d.h包含a.h

形成一个环,环中的头文件数量为 33 个: a.hb.hd.ha.h、b.h、d.h

样例1

输入

3
a.h b.h c.h
b.h d.h
d.h a.h

输出

3

说明

a.ha.h 包含 b.hb.h

b.hb.h 包含 d.hd.h

d.hd.h 包含 a.ha.h 形成一个环,

环中的头文件数量为 33 个: a.hb.hd.ha.h、b.h、d.h

样例2

输入

3
a.h b.h
b.h c.hd.h e.h

输出

-1

说明

无循环调用,返回 1-1

提示

文件名格式:

1.采用dos 8.3格式,区分大小写

2.只包含英文字母和至多一个点号分隔符