#P005831. 棋王大赛
棋王大赛
当前没有测试数据。
题目描述
为展示各路棋手的高超技艺,某知名棋院决定举办一场别具一格的棋王对弈大赛。
大赛邀请了 位顶尖棋手参加,每位棋手拥有一个独特的编号,从 到 。大赛采用单循环赛制,即每两位棋手之间将进行一场对弈,总共会有 场对弈,确保每对棋手恰好对弈一次。
大赛的组织者需要制定一个对弈日程表,满足以下条件:
- 每日对弈安排:每天可以安排多场对弈,但每位棋手每天最多参与一场对弈。
- 对弈顺序要求:每位棋手 ()都有一个期望的对弈顺序,用 表示。也就是说,棋手 希望他的第 场对弈是对阵棋手 ,第 场对阵棋手 ,依此类推,直到第 场。
你的任务是判断是否能够安排一个对弈日程,满足所有棋手的对弈顺序要求,同时保证每位棋手每天最多参与一场对弈。如果可能,计算完成所有对弈所需的最小天数;如果不可能,则输出 。
输入格式
第一行输入一个整数 ,表示棋手的数量。
接下来 行,每行包含 个整数,第 行的第 个数 表示棋手 希望在第 场对弈中对阵的对手编号。
输出格式
如果可以安排满足所有条件的对弈日程,输出一个整数,表示完成所有对弈所需的最小天数。
如果无法安排,输出 。
样例 #1
输入
3
3 2
1 3
1 2
输出
3
数据范围
对于 的数据,满足 。
对于 的数据,满足 。
对于 的数据,满足 。
对于 的数据,满足 ,,(棋手不会与自己对弈),对于每个 , 各不相同(每个棋手的对手列表无重复)。