ConcursC++17

paralele

Avem o matrice de dimensiuni N⋅MN \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

  • 1≤T≤21 \leq T \leq 2;
#PunctajRestricții
130T=1,N=2,2≤M≤500T = 1, N = 2, 2 \leq M \leq 500 și toate elementele 11 de pe oricare dintre linii, dacă există, formează o secvență compactă.
230T=2,2≤N≤500,2≤M≤500T = 2, 2 \leq N \leq 500, 2 \leq M \leq 500 si pe oricare coloană sunt maximum două valori de 1 alăturate.
39T=1,2≤N≤500,2≤M≤500T = 1, 2 \leq N \leq 500, 2 \leq M \leq 500
49T=2,2≤N≤500,2≤M≤500T = 2, 2 \leq N \leq 500, 2 \leq M \leq 500
512T=1,35 000≤N≤40 000,8≤M≤10T = 1, 35 \ 000 \leq N \leq 40 \ 000, 8 \leq M \leq 10
610puncte 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).

Sursă și autori

OJI 2019, clasele 8. Marius Nicoli.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑