Cod sursa(job #518832)
| Utilizator | Data | 3 ianuarie 2011 11:52:40 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.43 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=2;i<=n;i++){
sb=a[i]-min;
if(sb>smax){smax=sb;st=p+1;dr=i;}
if(a[i]<min){min=a[i];p=i;}
}
fprintf(fout,"%ld %ld %ld",smax,st,dr);
return 0;}