CF59D.Team Arrangement

普及+/提高

通过率:0%

时间限制:3.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Recently personal training sessions have finished in the Berland State University Olympiad Programmer Training Centre. By the results of these training sessions teams are composed for the oncoming team contest season. Each team consists of three people. All the students of the Centre possess numbers from 1 to 3_n_, and all the teams possess numbers from 1 to n. The splitting of students into teams is performed in the following manner: while there are people who are not part of a team, a person with the best total score is chosen among them (the captain of a new team), this person chooses for himself two teammates from those who is left according to his list of priorities. The list of every person's priorities is represented as a permutation from the rest of 3_n_ - 1 students who attend the centre, besides himself.

You are given the results of personal training sessions which are a permutation of numbers from 1 to 3_n_, where the i-th number is the number of student who has won the i-th place. No two students share a place. You are also given the arrangement of the already formed teams in the order in which they has been created. Your task is to determine the list of priorities for the student number k. If there are several priority lists, choose the lexicographically minimal one.

最近,贝尔兰国立大学奥林匹克编程训练中心的个人培训课程已经结束。根据这些培训课程的成绩,将组建队伍以迎接即将到来的团队竞赛赛季。每支队伍由三人组成。训练中心的所有学生编号为 11 到 3n3n,所有队伍编号为 11 到 nn。学生分组过程如下:只要还有未加入队伍的学生,就从剩余学生中选出总分最高的学生(作为新队伍的队长),该学生再根据自己的优先级列表,从剩余学生中挑选两名队友。每位学生的优先级列表是一个长度为 3n−13n-1 的排列,包含除自己外其余所有在训练中心学习的学生编号。

你将获得个人培训课程的成绩结果——一个 11 到 3n3n 的排列,其中第 ii 个数表示获得第 ii 名的学生编号。不存在并列名次。此外,你还获得已组建队伍的列表,按其组建顺序给出。你的任务是确定编号为 kk 的学生的优先级列表。若存在多个满足条件的优先级列表,请选择字典序最小的一个。

输入格式

The first line contains an integer n (1 ≤ n ≤ 105) which is the number of resulting teams. The second line contains 3_n_ space-separated integers from 1 to 3_n_ which are the results of personal training sessions. It is guaranteed that every student appears in the results exactly once.

Then follow n lines each containing three integers from 1 to 3_n_ — each line describes the members of a given team. The members of one team can be listed in any order, but the teams themselves are listed in the order in which they were created. It is guaranteed that the arrangement is correct, that is that every student is a member of exactly one team and those teams could really be created from the given results using the method described above.

The last line contains number k (1 ≤ k ≤ 3_n_) which is the number of a student for who the list of priorities should be found.

第一行包含一个整数 nn(1≤n≤1051 \leq n \leq 10^5),表示最终形成的队伍数量。
第二行包含 3n3n 个用空格分隔的整数,取值范围为 11 到 3n3n,表示各学生个人训练赛的成绩。保证每个学生在成绩列表中恰好出现一次。

接下来是 nn 行,每行包含三个取值范围为 11 到 3n3n 的整数——每行描述一支队伍的成员。同一支队伍的成员顺序可以任意,但各支队伍本身按其创建顺序列出。保证该分组方案是合法的,即:每个学生恰好属于一支队伍,且这些队伍确实能根据上述方法由给定的成绩结果生成。

最后一行包含一个整数 kk(1≤k≤3n1 \leq k \leq 3n),表示需要为其生成优先级列表的学生编号。

输出格式

Print 3_n_ - 1 numbers — the lexicographically smallest list of priorities for the student number k.

The lexicographical comparison is performed by the standard < operator in modern programming languages. The list a is lexicographically less that the list b if exists such an i (1 ≤ i ≤ 3_n_), that a__i < b__i, and for any j (1 ≤ j < i) a__j = b__j. Note, that the list 1 9 10 is lexicographically less than the list 1 10 9. That is, the comparison of lists is different from the comparison of lines.

输出 3n−13n - 1 个数——学生编号为 kk 的字典序最小的优先级列表。

字典序比较采用现代编程语言中的标准 < 运算符。若存在某个 ii(1≤i≤3n1 \le i \le 3n),使得 ai<bia_i < b_i,且对任意 jj(1≤j<i1 \le j < i)均有 aj=bja_j = b_j,则称列表 aa 字典序小于列表 bb。注意,列表 1 9 10 字典序小于列表 1 10 9。也就是说,列表的字典序比较方式与字符串的比较方式不同。

输入输出样例

  • 输入#1

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

    输出#1

    2 3 5 6 9 1 7 8
  • 输入#2

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

    输出#2

    1 2 3 4 5 6 7 9
  • 输入#3

    2
    4 1 3 2 5 6
    4 6 5
    1 2 3
    4

    输出#3

    5 6 1 2 3

输入解题思路,AI测评打分。不知道怎么写?

首页