Diferente pentru problema/map intre reviziile #2 si #18

Nu exista diferente intre titluri.

Diferente intre continut:

==Include(page="template/taskheader" task_id="map")==
==Include(page="template/taskheader" task_id="map")==
 
 
Max Damage, pentru a nu se pierde in calatoriile sale doreste sa isi faca o harta. Pentru a nu fi citita de oricine, el o codifica sub forma unei matrice cu $N$ linii si $M$ coloane. Pentru ca scrie urat, se duce la un prieten care are un tipar si il roaga sa ii tipareasca harta. Tiparul, fiind mai vechi, este stricat si tipareste harta de doua ori pe aceeasi foaie, dar cu o deplasare (spre dreapta).
Apare politia si Max fuge cu foaia prost tiparita. Ajuns la ascunzatoare el vede catastrofa: portiunea unde cele doua imprimari s-au suprapus se intampla sa coincida, astfel ca nu isi poate da seama unde se termina una si unde incepe cealalta. El vrea acum un program care, primind o astfel de matrice, sa returneze cea mai mica dimensiune a matricei originale astfel incat, suprapusa de doua ori cu o deplasare corecta spre dreapta, sa se obtina cea finala
 
Ajutati-l pe Max sa rezolve si aceasta problema zdrobitoare.
 
h2. Date de Intrare
 
Prima linie din fisierul $map.in$ va contine numerele $M$ si $N$, reprezetand dimensiunea matricei. Urmatoarele M linii vor contine cate $N$ litere mici ale alfabetului englez (matricea prost tiparita).
 
h2. Date de Iesire
 
Fiserul $map.out$ va contine pe prima linie o singura valoare, reprezentand dimensiunea orizontala minima a matricei originale.
 
h2. Restrictii si observatii
 
* $1 ≤ N, M ≤ 2000$
 
 
 
h2. Example
 
table(example). |_. map.in |_. map.out |
| 3 5
  anana
  arara
  mamam
| 3 |
 
h3. Explicatie
 
 
Pornind de la matricea de lungime 3
$ana$
$ara$
$mam$
suprapusa de doua ori se obtine:
$anana$
$arara$
$mamam$
 
table(example). |_. map.in |_. map.out |
| 1 4
  abcd
| 4 |
 
h3. Explicatie
 
Singura solutie este ca a doua imprimare sa fie perfect suprapusa peste prima.
 
table(example). |_. map.in |_. map.out |
| 1 4
  aaaa
| 3 |
 
h3. Explicatie
 
Daca lungimea ar fi fost mai mica, nu se suprapunea.
 
==Include(page="template/taskfooter" task_id="map")==
 
 
==Include(page="template/raw")==
 
Map
 
 
 
Max Damage, pentru a nu se pierde in calatoriile sale doreste sa isi faca o harta. Pentru a nu fi citita de oricine, el o codifica sub forma unei matrice cu N linii si M coloane. Pentru ca scrie urat, se duce la un prieten care are un tipar si il roaga sa ii tipareasca harta. Tiparul, fiind mai vechi, este stricat si tipareste harta de doua ori pe aceeasi foaie, dar cu o deplasare (spre dreapta).
Apare politia si Max fuge cu foaia prost tiparita. Ajuns la ascunzatoare el vede catastrofa: portiunea unde cele doua imprimari s-au suprapus se intampla sa coincida, astfel ca nu isi poate da seama unde se termina una si unde incepe cealalta. El vrea acum un program care, primind o astfel de matrice, sa returneze cea mai mica dimensiune a matricei originale astfel incat, suprapusa de doua ori cu o deplasare corecta spre dreapta, sa se obtina cea finala
 
h2. Cerinta
 
Ajutati-l pe Max sa rezolve si aceasta problema zdrobitoare.
 
h2. Date de Intrare
 
Prima linie din fisierul map.in va contine numerele M si N, reprezetand dimensiunea matricei. Urmatoarele M linii vor contine cate N litere mici ale alfabetului englez (matricea prost tiparita).
 
h2. Date de Iesire
 
Fiserul map.out va contine pe prima linie o singura valoare, reprezentand dimensiunea orizontala minima a matricei originale.
 
h2. Restrictii si observatii
 
S 1 <= N, M <= 2000
 
 
 
Exemple
 
map.in map.out Explicatii
3 5 3 Pornind de la matricea de lungime 3
anana
arara ana
mamam ara
mam
 
suprapusa de doua ori se obtine:
 
anana
arara
mamam
 
 
 
Singura solutie este ca a doua imprimare sa fie perfect suprapusa peste prima.
 
 
 
4
1 4
abcd
 
Daca lungimea ar fi fost mai mica, nu se suprapunea.
 
 
 
1 4 3
aaaa
 
 
==Include(page="template/taskfooter" task_id="map")==

Nu exista diferente intre securitate.

Diferente intre topic forum:

 
1089