Cod sursa(job #2030004)

Utilizator modulopaulModulopaul modulopaul Data 30 septembrie 2017 20:32:28
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <cstdio>
#define MAXN 6000000

using namespace std;
FILE *fin=fopen("ssm.in","r"),*fout=fopen("ssm.out","w");
int main(){
    int n,sp[MAXN],minsp,mini,x,maxsp=0,maxbeg,maxend;
    fscanf(fin,"%d",&n);
    fscanf(fin,"%d",&x);
    sp[0]=x;
    minsp=x;
    mini=0;
    maxsp=x;
    for(int i=1;i<n;i++){
        fscanf(fin,"%d",&x);
        sp[i]=sp[i-1]+x;
        if(sp[i]<minsp){
            minsp=sp[i];
            mini=i;
        }
        else{
            if(sp[i]-minsp>maxsp){
                maxsp=sp[i]-minsp;
                maxbeg=mini+1;
                maxend=i;
            }
        }
        if(sp[i]>maxsp){
            maxsp=sp[i];
            maxbeg=i;
            maxend=i;
        }
    }
    fprintf(fout,"%d %d %d",maxsp,maxbeg+1,maxend+1);
    return 0;
}