Universal Cup Judging System

Universal Cup

Limite de temps : 1.0 s Limite de mémoire : 256 MB Points totaux : 100 Interactif
Statistiques

To jest zadanie interaktywne!

Istnieje ukryta tablica $a_1, a_2, \dots, a_N$ złożona z $N$ parami różnych dodatnich liczb całkowitych (gdzie $N$ jest nieparzyste); niepoprawna kopia tej tablicy jest przechowywana w innej ukrytej tablicy $b$. Każdy element tablicy $b$ jest zdefiniowany następująco:

  • $b_1 = a_2$
  • $b_N = a_{N-1}$
  • $b_i = a_{i-1}$ lub $b_i = a_{i+1}$ dla każdego $i$, gdzie $1 < i < N$ (jeden z sąsiednich elementów)

Musisz ustalić, czy istnieją dwa indeksy $i$ oraz $j$ ($i \neq j$, $1 \le i, j \le N$) takie, że $b_i = b_j$. Jeśli takie indeksy istnieją, zwróć je; w przeciwnym razie wskaż, że takie indeksy nie istnieją.

Możesz pytać o elementy tablic $a$ oraz $b$ za pomocą następujących operacji:

  • 1 i: zwraca wartość $a_i$ ($1 \le a_i \le 10^9$)
  • 2 i: zwraca wartość $b_i$ ($1 \le b_i \le 10^9$)

Możesz zadać maksymalnie 20 zapytań.

Protokół interakcji

Najpierw musisz wczytać wiersz zawierający jedną liczbę całkowitą $T$ ($1 \le T \le 100$) oznaczającą liczbę przypadków testowych.

Następnie następuje opis interakcji dla $T$ przypadków testowych.

Dla każdego przypadku testowego musisz najpierw wczytać wiersz zawierający jedną liczbę całkowitą $N$ ($3 \le N \le 2\,001$, $N$ jest nieparzyste).

Wtedy rozpoczyna się interakcja. Możesz wypisać jeden wiersz zawierający:

  • 1 x (Zapytaj o $a_x$): Następnie wczytaj jeden wiersz składający się z jednej liczby całkowitej, $a_x$.
  • 2 x (Zapytaj o $b_x$): Następnie wczytaj jeden wiersz składający się z jednej liczby całkowitej, $b_x$.
  • 3 i j (Odpowiedź: dwa indeksy $i, j$, dla których $b_i = b_j$, lub -1 -1, jeśli nie istnieją takie dwa indeksy): Następnie przejdź do kolejnego testu, jeśli istnieje; w przeciwnym razie zakończ działanie programu.

Po wypisaniu każdego wiersza nie zapomnij opróżnić bufora wyjścia (flush). Na przykład:

  • fflush(stdout) w C/C++;
  • System.out.flush() w Javie;
  • sys.stdout.flush() w Pythonie;
  • flush(output) w Pascalu;
  • Zobacz dokumentację dla innych języków.

Przykład

Wejście 1

1
7
2
2

Wyjście 1

2 3
2 1
3 1 3

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.