Cod sursa(job #677324)
Utilizator | Gabriel Vanca gabrielv | Data | 10 februarie 2012 00:18:54 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
using namespace std;
#include<fstream>
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int v[6000005];
int main()
{
int n,i,start=1,end=1,begin=1,finish=1,S=0,max;
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
max=v[1];
for(i=1;i<=n;i++)
{
if(S+v[i]>v[i])
{
S=S+v[i];
finish=i;
}
else
{
S=v[i];
begin=i;
finish=i;
}
if(S>max)
{
start=begin;
end=finish;
max=S;
}
}
fout<<max<<" "<<start<<" "<<end;
return 0;
}