Cerința
Scrieți funcția care are antetul:
int SecvSumS(vector<int> &a, int s)
Funcția va returna lungimea minimă a unei secvențe nevide din a
care are suma egală cu s
. Dacă nu există nicio secvență de sumă s
funcția va returna valoarea -1
.
Restricții și precizări
a
conține cel puțin un element și cel mult200.000
- elementele vectorului sunt numere întregi din intervalul
[-5.000, 5.000]
-1.000.000.000 ≤ s ≤ 1.000.000.000
- Puteți utiliza în rezolvare orice structură de date
Exemplu:
Dacă a = (3,-2, 2, 1, 6, -3, 7, -11)
și s = 10
, atunci funcția va returna valoarea 3
, secvența de lungime minimă fiind (6, -3, 7)
. Și dacă a = (-2, -3, 4, -1)
și s = 6
atunci funcția va returna valoarea -1
.
Important
Soluţia propusă va conţine doar funcţia cerută. Prezenţa în soluţie a altor instrucţiuni poate duce la erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.