# PBinfo #3621 – fmbsorted – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerinţa
Scrieți definiția completă subprogramului C++ FMBSorted care are doi parametri:


a – o matrice pătratică având cel mult 2001 de linii și 2001 de coloane
n – numărul de linii și coloane ale matricei

Matricea a memorează numai valori 0 și 1 și are proprietatea că elementele de pe fiecare linie sunt sortate, adică valorile de 0 apar la începutul fiecărei liniei, iar valorile 1 la finalul fiecărei linii. Este posibil ca o linie să conțină doar valoari de 0 sau să conțină doar valori de 1.

Subprogramul FMBSorted va returna numărul maxim de valori de 1 care se găsesc pe o linie.

Restricţii şi precizări

3 < n ≤ 2000
numele subprogramului cerut este FMBSorted
parametrii sunt, în această ordine: a, n
liniile și coloanele matricei sunt indexate de la 1 la n;
se garantează că există cel puțin un 1 în matrice

Important

Încercați să găsiți o soluție de complexitate cât mai bună, deoarece funcția va fi apelată în fiecare test de 2000 de ori.
Soluţia propusă va conţine doar definiţia subprogramului cerut. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

## Cod sursă C++

```cpp
int FMBSorted(int a[][2001], int n) {
    int i, j;
    i = 1; j = n;
    while (i <= n && j >= 1)
        if (a[i][j] == 1) j--;
    else i++;
    return (n - j);
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3621)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3621/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3621/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
