Olympiade départementale d'informatique | paralele

This was the problem page during the contest. Access the current page here.
Time limit: 0.6s Memory limit: 20MB Input: paralele.in Output: paralele.outPoints by default: 10p

Avem o matrice de dimensiuni NMN \cdot M, cu elemente 00 și 11. Numim segment o secvență de cel puțin două valori 11 aflate una lângă alta, toate pe aceeași linie, sau toate pe aceeași coloană a matricei.

Cerință

Se cere determinarea numărului de perechi de segmente:

  1. aflate pe linii distincte ale matricei;
  2. aflate pe coloane distincte ale matricei;

Date de intrare

Fișierul paralele.in conține pe prima linie, separate prin câte un spațiu trei valori naturale, în ordine: T,NT, N și MM. Dacă TT este 11 se rezolvă doar cerința 11, iar dacă TT este 22 se rezolvă doar cerința 22.
Începând cu linia a doua se află elementele matricei, o linie a matricei pe o linie a fișierului. Elementele de pe aceeași linie se separă prin câte un spațiu.

Date de ieșire

Fișierul paralele.out conține pe prima linie un număr natural reprezentând valoarea cerută.

Restricții și precizări

  • 1T21 \leq T \leq 2;
# Punctaj Restricții
1 30 T=1,N=2,2M500T = 1, N = 2, 2 \leq M \leq 500 și toate elementele 11 de pe oricare dintre linii, dacă există, formează o secvență compactă.
2 30 T=2,2N500,2M500T = 2, 2 \leq N \leq 500, 2 \leq M \leq 500 si pe oricare coloană sunt maximum două valori de 1 alăturate.
3 9 T=1,2N500,2M500T = 1, 2 \leq N \leq 500, 2 \leq M \leq 500
4 9 T=2,2N500,2M500T = 2, 2 \leq N \leq 500, 2 \leq M \leq 500
5 12 T=1,35 000N40 000,8M10T = 1, 35 \ 000 \leq N \leq 40 \ 000, 8 \leq M \leq 10
6 10 puncte din oficiu

Exemplu

paralele.in

1 5 6
0 1 1 1 0 0
1 0 0 0 0 0
0 0 0 1 0 0
1 1 0 1 1 0
0 1 1 0 0 0

paralele.out

11

Explicație

Prima valoare din fișierul de intrare fiind 11, ne interesează segmente formate pe linii. Pe prima linie este o secvență de valori 11 formată din trei elemente. Ea produce trei segmente: cel cu primele două valori de 11, cel cu ultimele două valori de 11 și cel cu toate cele trei valori de 11. Pe linia a doua nu se găsește niciun segment, nefiind cel puțin două valori 1 alăturate. Pe linia a treia nu se găsește niciun segment, pe linia a patra sunt două segmente iar pe linia a cincea este un singur segment.

Numărul cerut se obține astfel: fiecare dintre cele trei segmente de pe prima linie este paralel cu fiecare dintre segmentele de pe a patra și de pe a cincea linie iar segmentele de pe linia a patra sunt paralele cu segmentul de pe ultima linie. Pentru exemplul prezentat, dacă am fi avut T=2T = 2 rezultatul calculat ar fi trebuit să fie 11 (segmentul de pe coloana a doua este paralel cu segmentul de pe coloana a patra).

Log in or sign up to be able to send submissions!