Cod sursa(job #1613901)

Utilizator AlexAnastasiuAlex Anastasiu AlexAnastasiu Data 25 februarie 2016 18:12:43
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,v[6000005],sum=0,maxs=-2048,st=1,dr=0,stmax=0,drmax=0,i;
bool ok=false;
int main() {
    fin>>n;
    for(int i=1; i<=n; i++) {
        fin>>v[i];
    }
    for(i=1; i<=n; i++) {
        sum+=v[i];
        dr++;
        if(sum<0) {
            sum=0;
            st=i+1;
            dr=i+1;

        }
        if(sum>maxs) {
            maxs=sum;
            stmax=st;
            drmax=dr;
        }
        if(sum>0)
            ok=true;
    }
    if(ok==false) {
        maxs=-2048;
        for(int i=1; i<=n; i++) {
            if(v[i]>maxs) {
                maxs=v[i];
                stmax=i;
                drmax=i+1;
            }
        }

    }
    fout<<maxs<<' '<<stmax<<' '<<drmax-1;
    return 0;
}