Cod sursa(job #363113)
Utilizator | avram florin constantin avram_florin | Data | 11 noiembrie 2009 21:00:02 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include<fstream>
#define MAXN 6000000
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int maxim(long a,long b)
{
if(a>b)
return a;
return b;
}
long n,i,x,max1,begin,end;
long best[MAXN];
int main ()
{
f>>n;
f>>x;
max1=-2000000000;
best[1]=x;
for(i=2;i<=n;i++)
{
f>>x;
best[i]=maxim(best[i-1]+x,x);
if(best[i]==x)
begin=i;
if(best[i]>max1)
{
max1=best[i];
end=i;
}
}
g<<max1<<' '<<begin<<' '<<end<<'\n';
f.close();
g.close();
return 0;
}