Tassadar, primarul orașului Araoșimit, a plantat pe bulevarde cireși japonezi. Cu trecerea timpului, aceștia au crescut mari și frumoși, numai că… acum sunt prea mari și ramurile lor îngreunează traficul. Din acest motiv, primarul a hotărât că ar fi cazul să taie câteva ramuri, dar să păstreze frumusețea copacilor.
Se dau $T$ perechi de arbori $(A, B)$ cu rădăcini fixate și se cere să spuneți numărul minim de operații care trebuie efectuate asupra arborelui A astfel încât acesta să devină izomorf cu arborele $B$, sau să menționați dacă acest lucru nu este posibil. O operație constă în ștergerea unei frunze din arborele $A$.
Fişierul de intrare sakura.in conţine pe prima linie un singur număr natural $T$, reprezentând numărul de perechi de arbori. În continuare vor fi descrise cele $T$ perechi. Pe prima linie din descrierea fiecărei perechi se află numărul $N$, reprezentând numărul de noduri din primul arbore (asupra căruia se vor efectua operațiile). Pe următoarele $N – 1$ linii se vor afla câte două numere $x$ și $y$, cu semnificația că există muchie între nodurile cu indicii $x$ și $y$. Pe următoarea linie se află un număr $M$, reprezentând numărul de noduri din al doilea arbore. Pe următoarele $M – 1$ linii se vor afla câte două numere $x$ și $y$, cu semnificația că există muchie între nodurile cu indicii $x$ și $y$.
În fişierul de ieşire sakura.out se vor afișa $T$ linii. Pe fiecare linie veți scrie câte un singur număr natural, reprezentând răspunsul pentru fiecare pereche de arbori, în ordinea dată în fișierul de intrare. Dacă, pentru o pereche, este posibil să se obțină al doilea arbore din primul, veți afișa numărul minim de operații. Altfel, veți afișa “$-1$”.
sakura.in
2 4 0 1 0 2 3 1 2 0 1 1 2 0 1
sakura.out
2 -1
Pentru prima pereche, putem șterge, în această ordine, nodurile $3$ și $1$. Cei doi arbori rămași sunt izomorfi, deoarece au aceeași rădăcină ($0$), și putem reeticheta nodul $2$ din primul arbore cu $1$. Astfel, vor deveni identici. Pentru a doua pereche, nu există soluție.
| Autor: | Andrei Heidelbacher |
| Publicat de: | raresgherasa |
Tags:
Programare dinamică Grafuri