Nu aveti permisiuni pentru a descarca fisierul grader_test8.ok
Diferente pentru problema/portale intre reviziile #46 si #45
Nu exista diferente intre titluri.
Diferente intre continut:
== include(page="template/taskheader" task_id="portale") == *Work in progress*
Într-un alt episod in care Rick si Morty pleacăsăsalveze Atlantida, Citadela se află, din nou, in pericol datorităunui Portal Gun pierdut. Rezistenta Morty-lor, obţinând aceastăarmă, plănuieşte o revoluţie, creând un sistem de portale, sub forma unui arbore ascuns,între n locaţii principale (numerotate de la 1 la n).
Intr-un alt episod in care Rick si Morty pleaca sa salveze Atlantida, Citadela se afla, din nou, in pericol datorita unui Portal Gun pierdut. Rezistenta Morty-lor, obtinand aceasta arma, planuieste o revolutie, creand un sistem de portale, sub forma unui arbore ascuns, intre n locatii principale (numerotate de la 1 la n).
Ştiind ca dimensiunea Citadelei este suprasolicitată, Militia Rick poate schimba forţat reţeaua de portaluri pentru a o determina. Astfel, aceasta poate introduceîntr-un Portal Gun coordonatele a douălocaţii cheie (a,b) determinând una din douăposibilitaţi: arma returnează(0,0) semn căun portal deja existăîntre a si b ori returneazăun dublet (x,y) semnalând căun nou portal se va deschideîntre a si b,în timp ce, portalul dintre x si y se vaînchide pentru a preveni apariţia unui ciclu, menţinând forma de arbore a reţelei.
Stiind ca dimensiunea Citadelei este suprasolicitata, Militia Rick poate schimba fortat reteaua de portaluri pentru a o determina. Astfel, aceasta poate introduce intr-un Portal Gun coordonatele a doua locatii cheie (a,b) determinand una din doua posibilitati: arma returneaza (0,0) semn ca un portal deja exista intre a si b ori returneaza un dublet (x,y) semnaland ca un nou portal se va deschide intre a si b, in timp ce, portalul dintre x si y se va inchide pentru a preveni aparitia unui ciclu, mentinand forma de arbore a retelei.
Ajutaţi Miliţia Rick săgăseascăsistemul de portaluri pentru a preveni rănirea inutilăa Morty-lor.
Ajutati Militia Rick sa gaseasca sistemul de portaluri pentru a preveni ranirea inutila a Morty-lor.
h2. Interacţiune
h2. Interactiune
Iniţial se citeşte din stdin numărul T reprezentând numărul de teste. Pentru fiecare test se citeşte, apoi, N numărul de noduri ale arborelui.
Initial se citeste din stdin numarul T reprezentand numarul de teste. Pentru fiecare test se citeste, apoi, N numarul de noduri ale arborelui.
Programul vostru are voie să pună query-uri scriind în standard output:
Dupa fiecare astfel de query, interactorul va raspunde in stdin astfel:
* "0 0": daca muchia (a,b) existădeja in arbore. * "x y": daca muchia (a,b) nu există, dubletul (x,y) reprezintămuchia care se vaşterge din graf odatăcu adăugarea muchiei (a,b) pentru a păstra forma de arbore.
* "0 0": daca muchia (a,b) exista deja in arbore. * "x y": daca muchia (a,b) nu exista, dubletul (x,y) reprezinta muchia care se va sterge din graf odata cu adaugarea muchiei (a,b) pentru a pastra forma de arbore.
După ce aţi aflat muchile arborelui, afişati "!" pe o singurălinie urmat de n-1 linii cu "a b" semnificând ca exista o muchie intre a si b.
După ce aţi aflat muchile arborelui, afişati "!" pe o singura linie urmat de n-1 linii cu "a b" semnificand ca exista o muchie intre a si b.
După fiecare query si dupa ce afisaţi rezultatul unui test, trebuie sa afişaţi '\n' şi să daţi flush la standard output. Pentru a da flush vă puteţi folosi de următorul tabel:
După fiecare query si dupa ce afisati rezultatul unui test, trebuie sa afişaţi '\n' şi să daţi flush la standard output. Pentru a da flush vă puteţi folosi de următorul tabel:
|_. Limbaj |_. C/C++ |_. Pascal |_. Python |_. Java |_. Rust |
| Header necesar | 0 | 0 |import sys| 0 | use std::io::{self,Write}; |
|_. Stdin |_. Stdout|_. Explicatie| |2
3 | 0 | Se rezolvăprimul arbore | | 0 | ? 1 3 | Apelăm funcţia pentru muchia 1 3 | | 0 0 | 0 | Aflăm ca muchia 1 3 existădeja in arbore |
3 | 0 | Se rezolva primul arbore | | 0 | ? 1 3 | Apelam functia pentru muchia 1 3 | | 0 0 | 0 | Aflam ca muchia 1 3 exista deja in arbore |
| 0 | ? 2 3 | 0 | | 0 0 | 0 | 0 | | 0 | ! 1 3
2 3 | Afişămmuchiile primuluiarbore | | 3 | 0 | Se dăal doilea arbore | | 0 | ? 1 2 | Apelăm funcţia pentru muchia 1 2 | | 1 3 | 0 | Aflăm ca muchia 1 3 a fostştearsăca săintroducem muchia 1 2|
2 3 | Afisam arborele pentru primul arbore | | 3 | 0 | Se da al doilea arbore | | 0 | ? 1 2 | Apelam functia pentru muchia 1 2 | | 1 3 | 0 | Aflam ca muchia 1 3 a fost stearsa ca sa introducem muchia 1 2|
| 0 | ! 1 2
2 3 | Prin eliminare,ştim ca muchia 2 3 se aflăin arbore |
2 3 | Prin eliminare, stim ca muchia 2 3 se afla in arbore |
== include(page="template/taskfooter" task_id="portale") ==
