arbfind

Time limit: 0.12s Memory limit: 32MB Input: arbfind.in Output: arbfind.out

Se numeşte arbore cu rădăcină o structură care conţine un nod special denumit rădăcina arborelui şi A1,A2,...,AnA_1, A_2, ..., A_n (unde n0n \geq 0) arbori cu rădăcină (denumiţi subarbori ai rădăcinii). Nodul rădăcină al fiecărui arbore AiA_i este denumit fiu al rădăcinii arborelui şi este conectat printr-o muchie de rădăcina arborelui.
Doi arbori cu rădăcină sunt identici dacă rădăcinile celor doi au acelaşi număr de subarbori şi aceştia sunt identici (mai exact, pentru orice i=1,2,...,ni=1, 2, ..., n subarborele ii al primului este identic cu subarborele ii al celui de-al doilea).
O termită poate „ciopli” un arbore acţionând astfel:

  1. termita porneşte de la rădăcina arborelui;
  2. la fiecare moment (în orice nod s-ar afla), termita poate face una dintre următoarele operaţii:
    • stă în nod şi mănâncă cea mai din dreapta muchie, eliminând astfel cel mai din dreapta fiu şi subarborele corespunzător (acestea cad şi vor fi mâncate de alte termite leneşe);
    • înaintează pe muchia din dreapta, spre fiul rămas cel mai din dreapta al nodului în care se află;
    • se opreşte.

Două termite prietene aleg doi arbori şi îi cioplesc în modul descris până când obţin doi arbori identici.
Similaritatea dintre doi arbori este egală cu numărul maxim de noduri care rămân în fiecare dintre cei doi arbori identici obţinuţi prin cioplire.

Cerinţă

Dându-se doi arbori (un arbore model şi un arbore de evaluat) să se calculeze pentru fiecare nod al arborelui de evaluat similaritatea dintre subarborele cu rădăcina în nodul respectiv şi arborele model dat.

Date de intrare

Pe prima linie a fişierului de intrare arbfind.in se găseşte un număr natural NN reprezentând numărul de noduri din arborele model, nodurile fiind numerotate de la 11 la NN. Pe liniile 2..N+12..N+1 se va afla descrierea arborelui model. Mai exact, pe linia ii se va afla un număr natural Fi1F_{i-1} reprezentând numărul de fii direcţi ai nodului i1i-1, urmat de Fi1F_{i-1} numere naturale cuprinse între 11 şi NN, reprezentând în ordinea de la stânga la dreapta fiii nodului i1i-1.
Linia N+2N+2 va conţine un număr natural MM reprezentând numărul de noduri din arborele de evaluat. Liniile N+3..N+M+2N+3..N+M+2 vor conţine descrierea arborelui de evaluat, în mod analog cu descrierea arborelui model.

Date de ieşire

Fişierul de ieşire arbfind.out va conţine MM linii. Pe linia ii se va afla similaritatea subarborelui cu rădăcina în nodul ii faţă de arborele model.

Restricţii şi precizări

  • Rădăcina arborilor este întotdeauna nodul 11.
  • 1M,N16 0001 \leq M, N \leq 16 \ 000

Exemplu

arbfind.in

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

arbfind.out

3
4
2
2
1
1
2
1
1

Explicație

Arborele model

Arbore evaluat

De exemplu, pentru nodul 11 din arborele model s-au eliminat în ordine subarborii cu rădăcinile 3,53, 5 şi 88. Din arborele model se elimină subarborele cu rădăcina 33.

Log in or sign up to be able to send submissions!