Cod sursa(job #1248775)
| Utilizator | Data | 25 octombrie 2014 22:53:52 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n,i,p,u,maxim,pmax,umax;
int v[6000001] , d[6000001];
int main () {
fin >> n;
for (i=1;i<=n;i++)
fin>>v[i];
d[1]=v[1];
maxim=d[1];
pmax=1;umax=1;
p=1;u=1;
for (i=2;i<=n;i++) {
if (v[i]+d[i-1]>=v[i]) {
d[i]=v[i]+d[i-1];
} else {
d[i]=v[i];
p=i;
}
if (d[i]>maxim) {
maxim=d[i];
pmax=p;
umax=i;
}
}
fout<<maxim<<" "<<pmax<<" "<<umax<<"\n";
return 0;
}
