Nu aveti permisiuni pentru a descarca fisierul grader_test7.in
Diferente pentru problema/lacuri intre reviziile #2 si #3
Nu exista diferente intre titluri.
Diferente intre continut:
== include(page="template/taskheader" task_id="lacuri") ==
Pe un teren de formăpătratăsunt zone de uscatşi lacuri. Harta terenului este memoratăîntr-un tablou bidimensional n*n cu valori 1 (apă) sau 0 (uscat). Liniile sunt numerotate de la 1 la n, de susîn josşi coloanele de la 1 la n, de la stânga la dreapta. Fiecare lac esteînconjurat de o suprafaţăde teren uscat. Excepţie fac doar lacurile situate la marginea terenului care suntînconjurate de uscat doar prin interiorul terenului nuşi prin afara acestuia.
Pe un teren de forma patrata sunt zone de uscat si lacuri. Harta terenului este memorata intr-un tablou bidimensional n*n cu valori 1 (apa) sau 0 (uscat). Liniile sunt numerotate de la 1 la n, de sus in jos si coloanele de la 1 la n, de la stanga la dreapta. Fiecare lac este inconjurat de o suprafata de teren uscat. Exceptie fac doar lacurile situate la marginea terenului care sunt inconjurate de uscat doar prin interiorul terenului nu si prin afara acestuia.
h2. Cerinta
Se doreşte săse traverseze terenul pe uscat, de la poziţia (1,1) la poziţia (n,n), pe un drum de lungime minimă, mergând pas cu pas. La un pas, se ajunge de la un pătrăţel la altulînvecinat cu el spre nord, est, sud sau vest. Săse scrie un program care:
Se doreste sa se traverseze terenul pe uscat, de la pozitia (1,1) la pozitia (n,n), pe un drum de lungime minima, mergând pas cu pas. La un pas, se ajunge de la un patratel la altul invecinat cu el spre nord, est, sud sau vest. Sa se scrie un program care:
# Determinănumărul lacurilor care sunt de formăpătratăşiîn acelaÅŸi timp sunt„pline de 1â€. #ÃŽn cazulîn care toate lacurile sunt de formăpătratăşiîn acelaÅŸi timp„pline de 1â€, determinaÅ£i un drum cu proprietatea de mai sus.
# Determina numarul lacurilor care sunt de forma patrata si in acelasi timp sunt pline de 1. # In cazul in care toate lacurile sunt de forma patrata si in acelasi timp pline de 1, determinati un drum cu proprietatea de mai sus.
h2. Date de intrare
Fişierul de intrare lacuri.in are pe prima linie numărul n, iar pe următoarele n linii este harta terenului (fiecare linie are n valori 0 sau 1, separate de câte un spaţiu).
Fisierul de intrare lacuri.in are pe prima linie numarul n, iar pe urmatoarele n linii este harta terenului (fiecare linie are n valori 0 sau 1, separate de cate un spatiu).
h2. Date de iesire
Fişierul de ieşire lacuri.out va conţine:
Fisierul de iesire lacuri.out va contine:
* pe prima linie: numărul de lacuri ce sunt de formăpătratăşiîn acelaÅŸi timp„pline de 1â€; *în cazulîn care toate lacurile sunt de formăpătratăşiîn acelaÅŸi timp„pline de 1â€, urmeazăliniile ce descriu drumul de lungime minimăales. Fiecare linie din fiÅŸier conÅ£ine câte o pereche de coordonate ale poziÅ£iilor succesive prin care trece drumul (liniaÅŸi coloana, separate cu un spaÅ£iu),începând cu (1,1)ÅŸi terminând cu (n,n).
* pe prima linie: numarul de lacuri ce sunt de forma patrata si in acelasi timp pline de 1; * in cazul in care toate lacurile sunt de forma patrata si in acelasi timp pline de 1, urmeaza liniile ce descriu drumul de lungime minima ales. Fiecare linie din fisier contine cate o pereche de coordonate ale pozitiilor succesive prin care trece drumul (linia si coloana, separate cu un spatiu), incepand cu (1,1) si terminand cu (n,n).
h2. Restrictii
* 2≤n≤100 * PoziÅ£iile (1,1)ÅŸi (n,n) sunt sigur libere (cu valoarea 0). * Dacăexistămai multe soluÅ£ii se va afiÅŸa oricare dintre ele. * Pot fi cel mult 100 de lacuriÅŸi cel puÅ£in unul; dacăun lac este de formăpătrată, atunci 1≤latura≤n-1. * Indiferent de forma lor, lacurile sunt sigur„izolateâ€, adicănu se„atingâ€deloc de alt lac.*De exemplu, dacăun lac conÅ£ine poziÅ£ia (3,3), atunci un alt lac nu poate conÅ£ine vreuna din poziÅ£iileînvecinate cu (3,3), adică: (2,3), (2,4), (3,4), (4,4), (4,3), (4,2), (3,2)ÅŸi (2,2). Pentru cerinÅ£aa)se acordă30% din punctaj, iar pentru cerinÅ£ab)se acordă70% din punctaj.
* 2 ≤ n ≤ 100 * Pozitiile (1,1) si (n,n) sunt sigur libere (cu valoarea 0). * Daca exista mai multe solutii se va afisa oricare dintre ele. * Pot fi cel mult 100 de lacuri si cel putin unul; daca un lac este de forma patrata, atunci 1 ≤ latura ≤ n-1. * Indiferent de forma lor, lacurile sunt sigur izolate, adic nu se ating deloc de alt lac. De exemplu, daca un lac contine pozitia (3,3), atunci un alt lac nu poate contine vreuna din pozitiile invecinate cu (3,3), adica: (2,3), (2,4), (3,4), (4,4), (4,3), (4,2), (3,2) si (2,2). Pentru cerinta 1 se acorda 30% din punctaj, iar pentru cerinta 2 se acorda 70% din punctaj.
h2. Exemplu
h3. Explicatie
# Prima linie conÅ£ine 4 (sunt 4 lacuri de formăpătratăşi„pline de 1â€) # Deoarece toate cele 4 lacuri sunt de formăpătratăşi„pline de 1â€, se scrieÅŸi drumul ales: de la (1,1), (1,2), (1,3), (2,3), (3,3), ...., (6,6).
# Prima linie contine 4 (sunt 4 lacuri de forma patrata si pline de 1) # Deoarece toate cele 4 lacuri sunt de forma patrata si pline de 1, se scrie si drumul ales: de la (1,1), (1,2), (1,3), (2,3), (3,3), ...., (6,6).
# Dacă în poziÅ£ia (3,5) ar fi fost un 0, atunci lacul cu latura 3 nu ar mai fi fost „plin de 1†şi atunci prima linie ar fi conÅ£inut doar valoarea 3 (ar fi fost doar 3 lacuri pătrate ÅŸi „pline de 1â€). # ÃŽn exemplul iniÅ£ial, dacă în poziÅ£ia (6,1) ar fi fost valorea 0, atunci nu ar fi fost toate lacurile pătrate (cel din stânga-jos nu ar fi fost pătrat) ÅŸi s-ar fi afiÅŸat doar un 3 în fiÅŸierul de ieÅŸire. # ÃŽn exemplul iniÅ£ial, dacă în poziÅ£ia (5,2) ar fi fost valoarea 0, atunci s-ar fi afiÅŸat doar un 3, pentru că lacul din stânga-jos nu ar fi un lac pătrat ÅŸi „plin de 1â€.
h3. Observatii # Daca in pozitia (3,5) ar fi fost un 0, atunci lacul cu latura 3 nu ar mai fi fost plin de 1 si atunci prima linie ar fi continut doar valoarea 3 (ar fi fost doar 3 lacuri patrate si pline de 1). # In exemplul initial, daca in pozitia (6,1) ar fi fost valorea 0, atunci nu ar fi fost toate lacurile patrate (cel din stanga-jos nu ar fi fost patrat) si s-ar fi afisat doar un 3 in fisierul de iesire. # In exemplul initial, daca in pozitia (5,2) ar fi fost valoarea 0, atunci s-ar fi afisat doar un 3, pentru ca lacul din stanga-jos nu ar fi un lac patrat si plin de 1.
== include(page="template/taskfooter" task_id="lacuri") ==