1724 The Numbered 89757 Matchmaker
Time Limit : 20000/10000 MS(Java/Others) | Memory Limit : 131072/65536 KB(Java/Others)
Submits : 1 | Solved : 0
Description
在不知名勇士的指点下,No.57与他的军队直接杀到了大魔王的老巢。
来到大魔王的城堡前,No.57发现大魔王早已恭候多时,多到大魔王千千万万的部队都饿死了,只剩下了和卡布达军团一样的n个人,即No.57有n个战士编号为1~n,大魔王也有
n个战士编号为-1~-n。而且非常巧的是这2n个战士都是曾经的好朋友,大家都知根知底,每个战士都能感觉到彼此战斗时获胜的希望大小。
而准备充分的No.57早就得到了所有战士彼此的对战评估排行表
每个战士给出一个对战评估排行表,表内是所有敌人的一个排列
若这个战士觉得与编号 x 的敌人战斗时获胜的希望越大,则x越靠前
假如编号为2的战士的评估表为 -1 -2 -3 -4….则代表编号为2的战士认为在所有敌人中,与-1号战士对战胜算最大,其次是-2号,其次次是-3号,其次次次是-4号…
现在No.57要安排一个n对n对战的方案。
但有一些对战方案是不稳定的,如果这些方案中会有这样的两对人出现
x1 与 y1 战斗,x2 与 y2战斗
但 x1 觉的与 y2 战斗获胜希望更大,并且 y2 也觉的与 x1 战斗获胜希望更大
如果不会有这种情况出现的匹配方案则称为一个稳定的对战匹配方案
不稳定的对战安排是不科学的,所以No.57要安排一个稳定的对战方案,并且要使自己的胜算最大,即己方的每个战士都能尽量与战胜算大的敌人战斗
Input
有多组测试数据
每组测试数据
第一行输入一个整数n,代表对战双方人数(1<=n<=100)
接下来n行 每行为一个 -1 ~ -n的排列,第i行即代表编号i战士的对战评估排行表
接下来n行 每行为一个1 ~ n的排列,第i行即代表编号-i战士的对战评估排行表
Output
每组输出n行,第i行表示编号i战士的对手的编号。
Sample Input
3 -2 -1 -3 -2 -1 -3 -1 -3 -2 1 3 2 2 1 3 3 1 2 3 -1 -2 -3 -1 -2 -3 -2 -3 -1 2 1 3 1 3 2 1 2 3
Sample Output
-1 -2 -3 -2 -1 -3
HINT
本题有多组测试数据输入,由文件控制结束。详见《C语言程序设计方法及在线实践》(陈叶芳版)P97页
Source
信息学院第七届程序设计竞赛