Cod sursa(job #1685531)
Utilizator | Data | 11 aprilie 2016 18:36:56 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 35 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.67 kb |
#include <fstream>
#define nmax 100005
using namespace std;
long long m[nmax];
long long v[nmax];
long long prec[nmax];
int main()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
long long n,i,x,valm=-1,pozm;
f>>n;
for (i=1;i<=n;i++)
f>>v[i];
for (i=1;i<=n;i++)
{
x=m[i-1]+v[i];
if ( x > v[i] )
{
prec[i]=prec[i-1];
m[i]=x;
}
else
{
prec[i]=i;
m[i]=v[i];
}
if (valm<m[i])
valm=m[i],pozm=i;
}
g<<valm<<' '<<prec[pozm]<<' '<<pozm<<'\n';
f.close();
g.close();
return 0;
}