SP5011 LFM - Library for Madrid
题目描述
马德里的编程图书馆
==================
良好的准备是赢得编程竞赛的关键。如果你在阅读这篇文档,说明你已经踏入了正确的轨道。掌握算法和编程语言至关重要。不过,你不需要把所有内容都背下来;比赛允许每个队伍带上 25 页的资料。
问题是:这 25 页该如何利用?你可以在每页上放下 10 段文本,但你有许多有用的代码片段和参考材料。此外,一些主题之间存在依赖关系。比如,不能在没包含直线、圆和点的代码时,单独包括线与圆的交点公式。
作为程序员,你决定让计算机帮助你解决这个难题。给定一组主题,附带它们所需的段落数和依赖关系,编写一个程序来确定最多能放入图书馆的主题数量。
输入格式
输入由多个测试用例组成。每个测试用例以两个整数 M 和 D 开始,分别表示主题数和依赖关系数(1 ≤ M ≤ 100,0 ≤ D ≤ 100)。接下来 M 行,每行有一个主题名称(单词)和该主题需要的段落数 $L_{t}$(1 ≤ $L_{t}$ ≤ 10)。接着 D 行,每行两个以空格分隔的主题名称,表示第一个主题依赖于第二个主题。
输入文件以 M = 0 的测试用例结束,该用例无需处理。
输出格式
对于每个测试用例,输出一行,包含最大能放入图书馆的主题数量和剩余的空闲段落数。若有多种方案能容纳相同的主题数量,则选择留有最多空闲段落的方案。
说明/提示
- 1 ≤ M ≤ 100
- 0 ≤ D ≤ 100
- 1 ≤ $L_{t}$ ≤ 10
**本翻译由 AI 自动生成**