Cod sursa(job #356192)
| Utilizator | Data | 13 octombrie 2009 19:38:54 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream.h>
#include <iostream.h>
#define MAX 100
int main(){
int indI, incmax, sfmax, smax=0;
indI = 1;
int A[MAX], n, i;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin>>n;
for (i=1; i<=n; i++)
fin>>A[i];
int sum = 0;
for (i=1; i<=n; i++){
if (A[i] >= 0){
sum += A[i];
if (sum>smax)
{
smax=sum;
incmax=indI; sfmax=i;
}
}
else
if (sum+A[i] >= 0){
sum += A[i];
}
else
{ sum=0;
indI = i+1;
}
}
fout<<smax<<endl;
fout.close();
fin.close();
return 0;
}
