Problem A
Carnival General
Every four years, the students of Lund come together to organize the Lund Carnival. For a few days, a park fills with tents where all kinds of festive activities take place. The person in charge of making this happen is the carnival general.
In total, there have been $N$ carnivals, each with a different general. The generals are numbered from $0$ to $N-1$ in chronological order. Every general $i$ has given their opinion on how good their predecessors were, by publishing a ranking of the generals $0, 1, \ldots , i-1$ in order from best to worst.
The next Lund Carnival will be in 2026. In the meantime, all past carnival generals have gathered to take a group photo. However, it would be awkward if generals $i$ and $j$ (where $i < j)$ end up next to each other if $i$ is strictly in the second half of $j$’s ranking.
For example:
-
If general $4$ has given the ranking 3 2 1 0, then $4$ can stand next to $3$, or $2$, but not $1$ or $0$.
-
If general $5$ has given the ranking 4 3 2 1 0, then $5$ can stand next to $4, 3$ or $2$, but not $1$ or $0$.
Note that it is fine if one general is exactly in the middle of another’s ranking.
The following figure illustrates sample 1. Here, general $5$ stands next to generals $2$ and $3$, and general $4$ stands next to general $2$ only.
You are given the rankings that the generals published. Your task is to arrange the generals $0,1,\ldots , N-1$ in a row, so that if $i$ and $j$ are adjacent (where $i < j$) then $i$ is not strictly in the second half of $j$’s ranking.
Input
The first line contains the positive integer $N$, the number of generals.
The following $N-1$ lines contain the rankings. The first of these lines contains general $1$’s ranking, the second line contains general $2$’s ranking, and so on until general $N-1$. General $0$ is absent since general $0$ didn’t have any predecessors to rank.
The ranking of general $i$ is a list with $i$ integers $p_{i,0}, p_{i,1}, \ldots , p_{i,i-1}$ in which every integer from $0$ to $i-1$ occurs exactly once. Specifically, $p_{i,0}$ is the best and $p_{i,i-1}$ is the worst general according to general $i$.
Output
Print a list of integers, an ordering of the numbers $0, 1, \ldots , N-1$, such that for each pair of adjacent numbers, neither is strictly in the second half of the other’s ranking.
It can be proven that a solution always exists. If there are multiple solutions, you may print any of them.
Constraints and Scoring
-
$2 \leq N \leq 1000$.
-
$0 \leq p_{i,0}, p_{i,1}, \ldots , p_{i,i-1} \leq i-1$ for $i = 0, 1, \ldots , N-1$.
Your solution will be tested on a set of test groups, each worth a number of points. Each test group contains a set of test cases. To get the points for a test group you need to solve all test cases in the test group.
Group |
Score |
Limits |
1 |
11 |
The ranking of general $i$ will be $i-1, i-2, \ldots , 0$ for all $i$ such that $1 \leq i \leq N-1$ |
2 |
23 |
The ranking of general $i$ will be $0, 1, \ldots , i-1$ for all $i$ such that $1 \leq i \leq N-1$ |
3 |
29 |
$N \leq 8$ |
4 |
37 |
No additional constraints |
Example
The first sample matches the condition of test group $1$. In this sample, neither general $2$ nor $3$ can stand next to general $0$, and neither general $4$ nor $5$ can stand next to generals $0$ and $1$. The sample output was illustrated in the figure above.
The second sample matches the condition of test group $2$. In this sample, general $2$ can’t stand next to general $1$, general $3$ can’t stand next to general $2$, and general $4$ can’t stand next to generals $3$ and $2$.
The third sample matches the condition of test group $3$. In this sample, the only pairs of generals that can’t stand next to each other are $(1, 3)$ and $(0, 2)$. Hence, there are no conflicts if they are arranged 3 0 1 2. Another possible answer is 0 1 2 3.
Sample Input 1 | Sample Output 1 |
---|---|
6 0 1 0 2 1 0 3 2 1 0 4 3 2 1 0 |
4 2 5 3 1 0 |
Sample Input 2 | Sample Output 2 |
---|---|
5 0 0 1 0 1 2 0 1 2 3 |
2 0 4 1 3 |
Sample Input 3 | Sample Output 3 |
---|---|
4 0 1 0 0 2 1 |
3 0 1 2 |