QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#22472. Krowy w drzewach

Statistics
Ilustracja

Bessie i Farmer John odwiedzają Mootreepolis, rozdzielają się i ona ginie. Grupa jej szuka; jedyny sposób to kierunek muczenia, słyszalnego w całym mieście.

Transport jest drzewem, jak nazwa: $N$ miejsc ($1 \le N \le 100,000$), numery $0$..$N$-$1$, $N$-$1$ dwukierunkowych ścieżek, jeden szlak między każdą parą. Bessie w jednym z $N$ miejsc.

W każdym z $N$ miejsc jest poszukiwacz. FJ może zadzwonić o kierunek muczenia, którą ścieżką do niej, lub czy znaleziono ją tam.

Telefon drogi, chce minimum rozmów. Wskaż miejsca do dzwonienia, zwłaszcza gwarantując najwyżej $20$ przed podaniem pozycji.

Uwaga: w $50\%$ wejść $N$ najwyżej $1000$.

Najpierw czytaj mapę ze standardowego wejścia, potem rozmawiaj z oceniającym przez standardowe wejście/wyjście. Wstępne wiersze listują ścieżki miejsc; indeks listy od zera, potrzebny później.

Pierwszy wiersz $N$, następne sąsiedzi miejsc od $0$. Pierwsze $K$ ($1 \le K \le N$), liczba sąsiadów, następnie $K$ całkowitych $N_{0}$, $N_{1}$, …, $N_{K-1}$, indeksy sąsiadów od zera. Ścieżka oznacza sąsiedztwo.

Wypisuj kolejno miejsca. Odpowiedź to indeks ścieżki do Bessie w odpowiednim początkowym wierszu. Czytaj ją z wejścia.

Wypisanie jej miejsca kończy automatycznie. Na QOJ oceniający zamyka strumień odpowiedzi po znalezieniu; zakończ normalnie przy końcu wejścia podczas czytania.

Odpowiedzi mogą być adaptacyjne, ale wszystkie zgodne z co najmniej jedną możliwą pozycją.

Przy znalezieniu zapowiedziana ocena niezerowa: do $20$ pytań z bieżącym daje $10$, od $30$ daje $0$, pozostałe $30$ minus liczba pytań.

Niech Bessie będzie w węźle $5$ mapy, opis wejścia z prawej:

                               Node Count Neighbors
                0   1            0      1 3
                |   |            1      1 4
             2--3---4--5(B)      2      1 3
                |   |            3      4 0 2 6 4
                6   7            4      4 3 7 1 5
                                 5      1 4
                                 6      1 3
                                 7      1 4

Tabela interakcji: query wyjście, response wejście, location wskazane miejsce. details pełna uporządkowana lista sąsiadów z interpretacją w <>:

Query   Response    Location     Neighbor list details 
  2        0           3          <3>
  6        0           3          <3>
  3        3           4          0 2 6 <4>
  4        3           5          3 7 1 <5>
  5        Done; program will be terminated

Z $2$, $6$ najbliższy i jedyny sąsiad $3$. Z $3$ to $4$, z $4$ to $5$. Jest w $5$, wypisanie $5$ kończy program.

Programy interaktywne

Opróżniaj wyjście, by nie zostało w buforze.

C/C++ z stdio.h dodaj:

setbuf(stdout, 0);

blisko początku programu.

C++ iostream, opróżniaj każdą linię tak:

cout << line << "\n" << flush;

Pascal po każdym writeln dodaj:

flush(stdout);

Java po każdym wyjściu dodaj:

System.out.flush();

Limit czasu po odpowiedzi prawdopodobnie oznacza brak poprawnego opróżniania.

Użytkownicy Java

Oto (mamy nadzieję) szkielet potrzebnego wejścia/wyjścia:

import java.io.*;
import java.util.*;
public class cowtree {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new
                                          InputStreamReader(System.in));
        /* write ... */
        System.out.println(...);
        System.out.flush();
        /* read a reply */
        response = in.readLine();
        ...

Node: węzeł

Count: liczba

Neighbors: sąsiedzi

Query: pytanie

Response: odpowiedź

Location: miejsce

Neighbor list details: szczegóły listy sąsiadów

Done; program will be terminated: gotowe, program zakończy się

write ...: pisz

read a reply: czytaj odpowiedź

Wejście

  • Wiersz $1$: całkowite $N$.

  • Wiersze $2..N+1$: wiersz $i+2$ opisuje sąsiadów miejsca $i$ całkowitymi oddzielonymi spacją $K$, $N_{0}$, …, $N_{K-1}$.

Wyjście

  • Bez wiersza w pliku wyjścia: pisz na standardowe wyjście, nie plik.

Przykład

Wejście 1

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

Wyjście 1

Autor zadania: MIT, 2010

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.