Cod sursa(job #647881)
| Utilizator | Data | 12 decembrie 2011 10:38:18 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out ("ssm.out");
const int N=6000001;
int v[N],s[N],n;
int main()
{
int i,smax=0,sc=0,stmax=0,drmax=0,stc;
in>>n;
for (i=1;i<=n;i++)
{
in>>v[i];
}
for (i=1;i<=n;i++)
{
if (sc<0)
{
sc=v[i];
stc=i;
}
else sc+=v[i];
if (sc>smax||(sc==smax&&i-stc<drmax-stmax))
{
smax=sc;
drmax=i;
stmax=stc;
}
}
out<<smax<<' '<<stmax<<' '<<drmax;
return 0;
}
