Sunteți pe pagina 1din 2

INSPECTORATUL

COLAR
JUDEEAN
SATU MARE

MINISTERUL
EDUCAIEI
NAIONALE
I CERCETRII
TIINIFICE

___________________________________________________________________________
Clasa a X-a
Problema 1

Sursa: ID1.cpp, ID1.c, ID1.pas


Marele zgomot

100 puncte

Fericit c s-a calificat la ONI, XORin vrea s srbtoreasc fcnd ct mai mult zgomot.
Deoarece e programator, acesta s-a gndit s automatizeze felul n care face zgomot.
Pentru a face zgomot el folosete o plac cu circuite de diverse intensit i. Placa poate fi
reprezentat sub forma unei matrice cu N linii i M coloane. Fiecare celul din matrice are o intensitate
ntre 0 i 9 (o celul cu intensitatea 0 corespunde unei zone goale, fr nici un circuit).
Un circuit ncepe ntr-o celul a matricei i se termin n alt celul, fiind o succesiune de celule
adiacente de aceeai intensitate de la un capt la cellalt al circuitului, asemenea unui drum pe matrice
ntre cele dou celule. Dou celule se consider adiacente dac au o latur comun, deci o celul e
adiacent cu maxim patru alte celule.
Placa a fost conceput n aa fel nct s nu apar scurtcircuite, aadar curentul dintr-un circuit
poate merge numai ntr-o singur direcie (cu alte cuvinte, fiecare celul dintr-un circuit se nvecineaz
cu maxim alte dou celule din acelai circuit). Nu exist circuite de aceeai intensitate care s se
nvecineze.
Zgomotul produs de un circuit este egal cu lungimea lui, adic cu numrul de celule din matrice
corespunztoare circuitului.
Exemple de circuite invalide:
03 111
33 110
33 110
Circuitele pot s se scurtcircuiteze.

040
444
040
Circuitul nu are exact dou capete.

Cerine
1) S se afle numrul de circuite.
2) S se afle valoarea zgomotului maxim care poate fi obinut unind dou circuite. Dou circuite pot fi
unite dac se poate trage o legtur de la un capt al unui circuit pn la un capt al celuilalt circuit,
numai prin celulele libere ale matricei (de intensitate 0). Legtura trebuie s aib forma unui circuit.
Lungimea circuitului nou creat nu se adaug la zgomotul produs de cele doua circuite.
3) S se afieze placa ce conine legtura care unete dou circuite din care se obine zgomotul maxim
de la cerina 2. Dac exist mai multe variante, se poate afia orice plac care conine legtura valid.
Date de intrare
Pe prima linie a fiierului mz.in se vor afla N i M, lungimea i limea plcii. Pe urmatoarele N linii se
vor afla M numere care vor caracteriza intensitatea circuitului care trece prin celula respectiv. n cazul
n care prin celula respectiv nu trece un circuit, n fiier se va afla caracterul 0.
Date de ieire
Prima linie a fiierului mz.out va conine pe prima linie numrul de circuite.
A doua linie va conine lungimea maxim a unui circuit care poate fi obinut unind dou circuite.
Pe urmtoarele linii se va afia matricea care conine circuitul nou format. Fiecare celul din legtur
prin care trece circuitul va fi marcat prin caracterul 'x'.
Restricii

1 <= N, M <= 1 000 pentru toate testele.


1 <= N * M <= 2 500 pentru 20% din teste.

INSPECTORATUL
COLAR
JUDEEAN
SATU MARE

MINISTERUL
EDUCAIEI
NAIONALE
I CERCETRII
TIINIFICE

___________________________________________________________________________

1 <= N * M <= 10 000 pentru 40% din teste.


Se garanteaz existena a cel puin 2 circuite care pot fi unite.
Dou circuite pot fi unite doar prin capetele lor (capetele legturii dintre circuite trebuie s fie adiacente cu cte un capt al
fiecrui circuit unit).
Dou circuite nu pot fi unite dect prin zone libere (legatur se poate forma doar pe celule de intensitate 0).
n cazul n care exist mai multe soluii la cerina 3, se va afia oricare dintre ele.
Pentru rezolvarea corect a cerinei (1) se primete 20% din punctaj.
Pentru rezolvarea corect a cerinelor (1) i (2) se primete 50% din punctaj.
Pentru rezolvarea corect a tuturor celor 3 cerine se primeste 100% din punctaj.

mz.in
86
122100
111100
000000
000011
222221
000011
000000
333000

mz.out
5
11
1221x0
1111x0
000xx0
xxxx11
222221
000011
000000
333000

4 20
00000000000010000000
00000000000010000000
00000000000100000000
00000000001000000000

3
3
00000000000x10000000
0000000000xx10000000
0000000000x100000000
00000000001000000000

8 25
0000000000000000000000000
0000001110001010011000000
0000010001110101100100000
0000001000000100001000000
0000110000000000000100000
2111000011000000000010000
0001000000000010000012000
0001000000000000000000100

20
8
00000xxxxxxx0000000000000
0000xx11100x1010011000000
0000x10001110101100100000
000xx01000000100001000000
0xxx110000000000000100000
2111000011000000000010000
0001000000000010000012000
0001000000000000000000100

Timp maxim de execuie/test: 6 secunde.


Memorie total disponibil: 64 MB, din care 32 MB pentru stiv.
Dimensiunea maxim a sursei: 10 KB.

S-ar putea să vă placă și