Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2009-06-05 15:11:13.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:1234.in, 1234.outSursăCCEX 2009
AutorRadu VatavuAdăugată deMariusMarius Stroe Marius
Timp execuţie pe test0.5 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

1234

Se dau două numere întregi alcătuite din cifrele {1, 2, 3, 4} asupra cărora veţi efectua operaţii aritmetice simple (+, -). Numerele vor fi furnizate printr-o imagine alb-negru.

Definiţii

O imagine alb-negru este reprezentată printr-o matrice de înălţime h (numărul de linii) şi lăţime w (numărul de coloane), unde fiecare element reprezintă un pixel alb sau negru, după cum valoarea este 1 sau 0.

Un obiect este un grup conectat de pixeli de culoare neagră din imagine. Doi pixeli de coordonate (i1, j1) şi (i2, j2) sunt conectaţi dacă |i1 - i2| + |j1 - j2| = 1 sau |i1 - i2| + |j1 - j2| = 2. Aceste condiţii înseamnă că un pixel are cel mult 8 alţi pixeli vecini.

Veţi dispune de o imagine care are doar 6 tipuri diferite de obiecte: cifrele 1, 2, 3, 4 şi operatorii +, -, care compun expresia ce va trebui evaluată. În figura de mai jos, rezultatul expresiei este 46.

O imagine ce conţine o expresie de evaluat. Obiectele sunt
întotdeauna de culoare neagră, iar fundalul de culoare albă.

Cerinţă

Va trebui să calculaţi rezultatul expresiei furnizate prin intermediul unei imagini alb-negru.

Date de intrare

Fişierul de intrare 1234.in conţine pe prima linie, separate printr-un spaţiu, dimensiunile matricei: înâlţimea h şi lăţimea w. Următoarele h linii vor conţine reprezentarea matricei cu exact w caractere pe o linie. Vor fi două tipuri de caractere: 1, reprezentând culoarea alb şi 0 reprezentând culoarea negru. Între caracterele 0 şi 1 nu vor fi spaţii iar fiecare linie are exact w caractere.

Date de ieşire

În fişierul de ieşire 1234.out va conţine un singur număr reprezentând rezultatul expresiei.

Restricţii

  • 1 ≤ h, w ≤ 150
  • În fişierul de intrare se vor găsi doar două numere, un operator (+, -) şi un semn egal (=).
  • Fiecare număr conţine cel mult 4 cifre iar rezultatul poate fi reprezentat, de asemnenea, cu 4 cifre.
  • Operatorul - este binar, adică nu se vor găsi expresii precum -5+6=.
  • Caracterele expresiei vor fi aliniate.

Exemplu

1234.in1234.out
21 120
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111100001111111111000011111111111111111111111111110001111111111111111000001111111111111111111111111111111111
111111111111111100001111111100000000011111111100001111111111000000001111111111110000001111111111111111111111111111111111
111111111111110000001111111000000000001111111100001111111100000000000111111111110000001111111111111111111111111111111111
111111111111100000001111110000111100001111111100001111111100001110000011111111100000001110000000000000111111111111111111
111111111100000000001111110000111100000111111100001111111111101110000111111111001000001110000000000000111111111111111111
111111111100001000001111111110111100001111111100001111111111111110000111111110011000001110000000000000111111111111111111
111111111100111000001111111111111100001110000000000000011111111100001111111110011000001110000000000000111111111111111111
111111111111111000001111111111111000001110000000000000011111111100011111111100111000001111111111111111111111111111111111
111111111111111000001111111111110000011110000000000000011111111000000111111001111000001111111111111111111111111111111111
111111111111111000001111111111100001111110000000000000011111111111000011110011111000001110000000000000111111111111111111
111111111111111000001111111111000011111111111100001111111111111111000011100000000000000010000000000000111111111111111111
111111111111111000001111111100000111111111111100001111111111111111000001100000000000000010000000000000111111111111111111
111111111111111000001111111000001111111111111100001111111111101111000011100000000000000010000000000000111111111111111111
111111111111111000001111111000000000000111111100001111111100001111000011100000000000000011111111111111111111111111111111
111111111111111000001111110000000000000111111100001111111110000000000111111111111000001111111111111111111111111111111111
111111111111111000001111110000000000000111111111111111111111000000001111111111111000001111111111111111111111111111111111
111111111111111000001111110000000000000111111111111111111111111000111111111111111000001111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
46
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?