# PBinfo #4478 – Nr max de zerouri – Rezolvare C++

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

## Enunț

Cerința
Fie un șir de n valori 0 și 1 și un număr k. Afișați lungimea maximă a unei secvențe din șir care conține doar valori de 1 după ce s-au modificat cel mult k valori de 0 în valori de 1.

Date de intrare
Programul citește de la tastatură numerele n și k și apoi cele n valori 0 și 1.

Date de ieșire
Programul va afișa pe ecran numărul L, reprezentând secvența de lungime maximă.

Restricții și precizări

1 ≤ n ≤ 100.000
1 ≤ k < n

Exemplu:
Intrare

5 2
1 0 1 0 1
Ieșire

5
Explicație
S-au înlocuit 2 valori de 0 și lungimea maximă este 5.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int v[100001];
int main()
{
    int i=0,j=0,maxs=0,nr=0,n,k;
    cin>>n>>k;
    for(i=0; i<n; i++)
        cin>>v[i];
    for(i=0; i<n; i++)
    {
        if(v[i]==0) nr++;
        if(nr<=k)
        {
            if(maxs<i-j+1)
                maxs=i-j+1;
        }
        else
            while(nr>k)
            {
                if(v[j]==0) nr--;
                j++;
            }
    }
    cout<< maxs;
    return 0;
}
```

## Resurse

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