2500: 画鬼脚

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:14 解决:8

题目描述

小朋友们在课间都喜欢玩一些小游戏,其中画鬼脚就是其中一项。画鬼脚是一种简单决策或
者决定分配组合的方法。玩法是在一张纸上画若干条直线,一端为起始端,另一端为目标端,然
后可以在任意相邻直线上画上垂直竖线,连通相邻的两条直线,所连竖线避免和其他所连的线有
相同的端点。然后从起始的一端开始向另一端点前进。每当遇到竖线时,则沿着竖线走到另一根
横线上,继续向目标端点行走,直到达到目标端点为止。
现在知道起始端的编号为 1,2,3,4......,问各点从起始端到达目标端后,从上往下的编号
分别是什么?

输入

第一行,一个正整数 n,表示一共有多少条横线。
接下来 n-1 行,每行 j+1 个整数,以 0 作为行结束标记。每个整数 p[i][j]表示第 i 条直线
与第 i+1 条直线之间存在一条竖线且这条竖线距离起始端的距离为 p[i][j]。
数据保证所有的 p[i][j]不重复。

输出

一行,n 个正整数,表示最终的顺序,每两个数之间有一个空格隔开。

样例输入 复制

4
1 4 8 0
2 5 6 0
3 7 9 0

样例输出 复制

2 3 4 1

提示

对于 30%的数据: 1<=n<=10;1<=p[i][j]<=10;
对于 60%的数据: 1<=n<=100;1<=p[i][j]<=10000;
对于 100%的数据:1<=n<=10000;1<=p[i][j]<=100000。