Cod sursa(job #518829)

Utilizator alexamiu2008Miu Alexandra alexamiu2008 Data 3 ianuarie 2011 11:47:27
Problema Subsecventa de suma maxima Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<stdio.h>
FILE*fin,*fout;
long  int a[6000001],i,j,sb,min,smax,n,st,dr,p;
int main(){
fin=fopen("ssm.in","r");
fout=fopen("ssm.out","w");
fscanf(fin,"%ld",&n);
for(i=1;i<=n;i++){
fscanf(fin,"%ld ",&a[i]);
a[i]=a[i]+a[i-1];
}
smax=-1000000000;
min=1000000000;p=1;
for(i=1;i<=n;i++){
sb=a[i]-min;
if(smax==sb){
if(p<st){st=p;dr=i;}
if(p==st){
if((dr-st+1)<i-p+1){st=p;dr=i;}

}
}
if(sb>smax){smax=sb;st=p;dr=i;}
if(a[i]<min){min=a[i];p=i;}

}

fprintf(fout,"%ld %ld %ld",smax,st+1,dr);
return 0;}