Pagini recente » Monitorul de evaluare | Cod sursa (job #156721) | Cod sursa (job #1707584) | Cod sursa (job #1534518) | Cod sursa (job #518829)
Cod sursa(job #518829)
#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;}