Cod sursa(job #1623582)
Utilizator | george rosescu george777 | Data | 1 martie 2016 20:28:07 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int v[6000000],suma[6000000],poz[6000000];
int main()
{
int n,i,sumamax=-9999999,pi,pf;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
for(i=1;i<=n;i++)
{
if(i>1)
suma[i]=max(v[i]+suma[i-1],v[i]);
else
suma[i]=v[i];
if(suma[i]>=sumamax)
{
sumamax=suma[i];
pi=i;
}
}
i=pi;
while(suma[i]>0)
{
pf=i;
i++;
}
g<<sumamax<<" "<<pi<<" "<<pf;
return 0;
}