Cod sursa(job #806697)
Utilizator | Ionut Calofir Ionut228 | Data | 3 noiembrie 2012 12:28:03 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include<fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int best[6000001],v[6000001],n,i;
void sir ()
{
int m=0,im,jm;
best[1]=v[1];
for(i=2;i<=n;i++)
{
if(best[i-1]+v[i]>=v[i])
best[i]=best[i-1]+v[i];
else
{
im=i;
best[i]=v[i];
}
}
for(i=1;i<=n;i++)
if(best[i]>=m)
{
jm=i;
m=best[i];
}
g<<m<<" "<<im<<" "<<jm;
}
int main ()
{
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
sir();
f.close();g.close();
return 0;
}