Cod sursa(job #1972167)
Utilizator | Moisanu Stefan StefanMoisanu | Data | 22 aprilie 2017 12:39:13 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 65 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.88 kb |
#include <iostream>
#include <fstream>
#define NMAX 1000001
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int a[NMAX];
void SSM (int n){
int s,smax,i=1,j=1,isir=1,q,l=1,lmax,ok;
fin>>a[1];
s=smax=a[1];
for( q=2;q<=n;q++){
fin>>a[q];
s+=a[q];l++;
if(s>smax){
smax=s;
j=q;
isir=i;
lmax=l;
ok=0;
}
if(s==smax&&ok==1&&l<lmax){
j=q;
isir=i;
ok=0;
lmax=l;
}
if(s<=0){
s=0;
l=0;
ok=1;
i=q+1;
}
}
fout<<smax<<' '<<isir<<' '<<j;
}
int main()
{ int n;
fin>>n;
SSM(n);
return 0;
}