Cod sursa(job #392155)
Utilizator | mihai995 mihai995 | Data | 6 februarie 2010 20:55:45 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.39 kb |
#include <fstream>
using namespace std;
long v[6000000],n,st,sf,sta;
int main()
{
ifstream f("ssm.in");
ofstream o("ssm.out");
f>>n;
long min=2000000000,max;
for (long i=1;i<=n;i++)
{
f>>v[i];
if (i==1) {max=v[i];st=1;sf=1;}
v[i]+=v[i-1];
if (v[i]>max+min) {max=v[i]-min,st=sta+1;sf=i;}
if (v[i]<min) {min=v[i];sta=i;}
}
o<<max<<" "<<st<<" "<<sf;
return 0;
}