Cod sursa(job #443598)
Utilizator | Moraru Sebastian sebe14 | Data | 17 aprilie 2010 18:08:31 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include<fstream>
#include<limits>
#define NM 6000001
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int v[NM];
int main()
{
int n,i,start,end,smax,sl,el,sc;
f>>n;
for(i=1; i<=n; i++)
f>>v[i];
smax=INT_MIN;
sc=v[1];
sl=1;
el=1;
for(i=2; i<=n; i++)
if(sc<0){
sl=i;
el=i;
sc=v[i];
}
else{
sc+=v[i];
el=i;
if(smax<sc){
smax=sc;
start=sl;
end=el;
}
}
g<<smax<<" "<<start<<" "<<end;
return 0;
}