Cod sursa(job #2689789)

Utilizator teochess2017Togan Teodor-Bogdan teochess2017 Data 22 decembrie 2020 09:54:37
Problema Subsecventa de suma maxima Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
#include <stdlib.h>
int sume[6000000],pozmin[6000000];
int main()
{
    FILE *fin,*fout;
    int n,i,s,x,pmin,pmax;
    fin=fopen("ssm.in","r");
    fscanf(fin,"%d",&n);
    s=0;
    pmin=0;
    for(i=0;i<n;i++){
      fscanf(fin,"%d",&x);
      if(x>(s+x)){
        s=0;
        pmin=i;
      }
      s+=x;
      sume[i]=s;
      pozmin[i]=pmin;
    }
    fclose(fin);
    pmax=0;
    for(i=1;i<n;i++){
      if(sume[i]>sume[pmax]){
        pmax=i;
      }else if(sume[i]==sume[pmax]){
        if(pozmin[i]<pozmin[pmax]){
          pmax=i;
        }
      }
    }
    fout=fopen("ssm.out","w");
    fprintf(fout,"%d %d %d",sume[pmax],pozmin[pmax]+1,pmax+1);
    fclose(fout);
    return 0;
}