Cod sursa(job #2030007)

Utilizator modulopaulModulopaul modulopaul Data 30 septembrie 2017 20:37:15
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <cstdio>

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