Cod sursa(job #1972167)

Utilizator StefanMoisanuMoisanu 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;
}