Universal Cup Judging System

Universal Cup

Time Limit: 2.0 s Memory Limit: 2048 MB Total points: 100 Difficulty: [show] Communication
Statistics

Dette er et flertrinnsproblem (multi-pass problem).

I de digitale arkivene i Kivotos har Plana oppdaget en samling mystiske opptegnelser kjent som Bitemporale Logger. Hver logg består av $n$ oppføringer merket fra $1$ til $n$ som danner et rotfestet tre. De strukturelle kravene varierer imidlertid avhengig av om tidsflyten er retrospektiv (Logikk A) eller prospektiv (Logikk B):

  • Logikk A: Treet har rot i oppføring $1$; hver annen oppføring $i$ har en forelder $p_i$ slik at $p_i < i$.
  • Logikk B: Treet har rot i oppføring $n$; hver annen oppføring $i$ har en forelder $q_i$ slik at $q_i > i$.

For å analysere de strukturelle egenskapene definerer Plana to typer oppføringer:

  • Terminal: En oppføring som ikke fungerer som forelder til noen andre oppføringer.
  • Knutepunkt (Hub): En oppføring som fungerer som forelder til minst én annen oppføring.

Plana observerte en perfekt symmetri kalt Logisk Resonans (Logical Resonance). Denne egenskapen gjelder mellom en Logikk A-logg og en Logikk B-logg hvis og bare hvis:

$$\text{For every } i\text{, entry } i \text{ is a Terminal in Logic A} \iff \text{entry } i \text{ is a Hub in Logic B.}$$

Plana har matematisk bevist at antallet gyldige Logikk A-logger og Logikk B-logger under denne betingelsen er identisk. Nå gir hun deg i oppdrag å utforme en Universell Oversettelsesprotokoll — en bijeksjon — for å gjøre om det ene loggformatet til det andre.

Evaluering av korrekthet

Løsningen din kjøres to ganger på hver test. I den første kjøringen må løsningen din konvertere hver Logikk A-logg til en Logikk B-logg som tilfredsstiller kravet om Logisk Resonans. I den andre kjøringen, gitt en Logikk B-logg produsert av den første kjøringen din, må løsningen din gjenopprette den opprinnelige Logikk A-loggen nøyaktig.

Inndataene i den andre kjøringen består av de samme Logikk B-loggene som utdataene dine fra den første kjøringen, muligens i en annen rekkefølge. For hver Logikk B-logg i inndataene i den andre kjøringen må du skrive ut den tilhørende Logikk A-loggen. Løsningen din regnes som riktig dersom utdataen din for hver slik Logikk B-logg er nøyaktig den samme Logikk A-loggen som genererte den i den første kjøringen.

Et testverktøy er tilgjengelig for å hjelpe deg med å utvikle og teste løsningen din.

Inndata

Den første linjen i inndataene inneholder to heltall $r$ ($r \in \{1, 2\}$) og $T$ ($1 \le T \le 10^5$), som representerer kjøringsnummeret og antallet testtilfeller.

For hvert testtilfelle inneholder den første linjen et heltall $n$ ($2 \le n \le 10^3$).

Hvis $r = 1$, inneholder den andre linjen $n$ heltall $p_1, p_2, \dots, p_n$ som representerer Logikk A-loggen. Det garanteres at $p_1 = 0$, og for $2 \le i \le n$ er $1 \le p_i < i$ oppføringen som oppføring $i$ er festet til. Her bruker vi $0$ for å angi at en oppføring ikke har noen forelder (dvs. at den er roten).

Ellers, hvis $r = 2$, inneholder den andre linjen $n$ heltall $q_1, q_2, \dots, q_n$ som representerer Logikk B-loggen. Det garanteres at $q_n = 0$, og for $1 \le i \le n - 1$ er $i < q_i \le n$ oppføringen som oppføring $i$ er festet til.

Det garanteres at summen av $n^2$ over alle testtilfeller ikke overstiger $10^7$.

Utdata

Hvis $r = 1$, skal du for hvert testtilfelle skrive ut $n$ heltall atskilt med mellomrom, $q_1, q_2, \dots, q_n$, som representerer den konverterte Logikk B-loggen. Det må gjelde at $q_n = 0$, og for $1 \le i \le n - 1$ at $i < q_i \le n$. Egenskapen Logisk Resonans må gjelde: oppføring $i$ er en Terminal i Logikk A hvis og bare hvis oppføring $i$ er et Knutepunkt i Logikk B.

Ellers, hvis $r = 2$, skal du for hvert testtilfelle skrive ut $n$ heltall atskilt med mellomrom, $p_1, p_2, \dots, p_n$, som representerer den gjenopprettede Logikk A-loggen.

Eksempel

Eksempel 1, Omgang 1

Inndata
1 3
4
0 1 1 2
4
0 1 2 1
4
0 1 1 1
Utdata
3 3 4 0
3 4 4 0
2 3 4 0

Eksempel 1, Omgang 2

Inndata
2 3
4
2 3 4 0
4
3 3 4 0
4
3 4 4 0
Utdata
0 1 1 1
0 1 1 2
0 1 2 1

Forklaring av Eksempel 1

En mulig gyldig bijeksjon er vist nedenfor.

problem_16339_5fc56a9536f47de069054071a1fe22c7.png

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.