# PBinfo #3163 – SecvMaxVal – Rezolvare C++

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

## Enunț

Cerința
Se dă un șir de n numere naturale și un număr natural val. Determinați lungimea maximă a unei secvențe cu proprietatea că suma numerelor din aceasta este mai mică sau egală cu val.

Date de intrare
Fișierul de intrare secvmaxval.in conține pe prima linie numerele n și val, iar pe a două linie n numere naturale separate prin spații.

Date de ieșire
Fișierul de ieșire secvmaxval.out va conține pe prima linie lungimea maximă a unei secvențe care satisface proprietatea dată.

Restricții și precizări

1 ≤ n ≤ 200.000
numerele de pe a două linie a fișierului de intrare vor fi mai mici decât 1.000.000.000
1 ≤ val ≤ 263

Exemplu:
secvmaxval.in

5 11
4 5 2 3 9
secvmaxval.out

3
Explicație
O secvență de lungime maximă cu suma elementelor mai mică sau egală cu 11 este 5 2 3.

## Cod sursă C++

```cpp
/// Solutie - Moca Andrei - O(n^2)
#include <bits/stdc++.h>
#define ENTER ios::sync_with_stdio(false); fin.tie(0); fout.tie(0);
#define EXIT  fin.close(); fout.close(); return 0;
using namespace std;
ifstream fin("secvmaxval.in");
ofstream fout("secvmaxval.out");
int n, lmax, v[200002], minim = 1e9;
int64_t s, sum, val;
int main()
{
    ENTER
    fin >> n >> val;
    for (int i = 1; i <= n; ++i)
    {
        fin >> v[i];
        s += v[i];
        minim = min(minim, v[i]);
    }
    if (val < minim) {
        fout << 0; EXIT
    }
    if (val >= s) {
        fout << n; EXIT
    }
    for (int i = 1; i <= n; ++i)
    {
        sum = 0;
        for (int j = i; j <= n; ++j)
        {
            sum += v[j];
            if (sum > val) {
                lmax = max(lmax, j - i);
                break;
            }
        }
    }
    fout << lmax;
    EXIT
}
```

## Resurse

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