Cod sursa(job #304090)
Utilizator | Data | 10 aprilie 2009 21:18:06 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <iostream>
#include <algorithm>
#define FIN "ssm.in"
#define FOUT "ssm.out"
#define MAX 6000010
using namespace std;
int v[MAX],dyn[MAX];
int N;
int main(void){
freopen(FIN,"rt",stdin);
freopen(FOUT,"wt",stdout);
scanf("%d",&N);
for (int i=1;i<=N;++i) {scanf("%d",&v[i]);}
int maxim=v[1];
for (int i=1;i<=N;++i){
dyn[i]=max(v[i],dyn[i-1]+v[i]);
maxim=max(maxim,dyn[i]);
}
printf("%d\n",maxim);
fclose(stdin);
fclose(stdout);
return 0;
}