Documente Academic
Documente Profesional
Documente Cultură
#include <fstream>
/**
2.Elaborati o functie pentru determinarea unei secvente de elemente consecutive ca pozitie in vector
de suma maxima
Functia va returna suma maxima si in variabilele de iesire p si u indici de unde incepe si se termina
secventa de suma maxima
Folosim variabilele
s-suma curenta
Smax=suma maxima
i=2 s=s+v[2]=5<smax
i=3 s=s+v[3]=6<smax
i=4 s=s+v[4]=-3<smax
i=5 deoarece s<0 el nu va mai contribui la determinarea sumei maxime => s=0 i0=5
s=s+v[5]=6<smax
i=6 s=s+v[6]=4<smax
i=8 s=s+v[8]=7<smax
i=10 s=s+v[10]=9<smax
*/
using namespace std;
ifstream f("date.in");
n=0;
int x;
while (f>>x){
v[n]=x;
n++;
int i;
for (i=0;i<n;i++)
cout<<v[i]<<" ";
int s, smax,i0,i;
for (i=1;i<n;i++)
if (s<=0){s=0;i0=i;}
s=s+v[i];
if (s>smax){smax=s;p=i0;u=i;}
}
return smax;
int main()
int v[100], n, p, u;
citire(v, n);
afisare(v,n);
int smax=sumaMaxima(v,n,p,u);
return 0;