QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100

#3614. 数学交易

Statistics

假设有一群人,他们拥有想要交易的物品,同时也想要得到其他物品:

姓名 拥有 想要
Sally Clock Doll
Steve Doll Painting
Carlos Painting Clock
Maria Candlestick Vase

请注意,上述列表中没有任何两个人可以直接配对交易。然而,如果 Sally、Steve 和 Carlos 聚在一起,Sally 可以用她的 Clock 换取她想要的 Doll,然后 Steve 可以用那个 Clock 换取他想要的 Painting。

这种通过一系列个人交易,使尽可能多的人获得他们想要物品的过程被称为“数学交易”(math trade)。理想情况下,每个人都参与到数学交易中,但这并不总是可能的(抱歉了 Maria)。因此,目标是创建一个长度最长的单一交易链。如果参与者有多个想要交易或获取的物品,确定最长的数学交易会变得很复杂。幸运的是,我们只需要处理每个人恰好拥有并想要一件物品,且没有任何物品被多于一人拥有或被多于一人想要的情况。

输入格式

输入的第一行包含一个正整数 $n$ ($n \le 100$),表示参与交易的人数。接下来有 $n$ 行,每行包含三个由空格分隔的字符串。第一个字符串是交易者的姓名。第二个字符串是交易者拥有的物品。第三个字符串是交易者想要的物品。所有交易者的姓名都是唯一的,且没有任何物品会被多于一人想要或被多于一人拥有。

输出格式

输出最长数学交易的长度。如果无法进行任何交易,则输出短语 “No trades possible”。

样例

样例输入 1

4
Sally Clock Doll
Steve Doll Painting
Carlos Painting Clock
Maria Candlestick Vase

样例输出 1

3

样例输入 2

4
Abby Bottlecap Card
Bob Card Spoon
Chris Spoon Chair
Dan Pencil Pen

样例输出 2

No trades possible

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.