Cod sursa(job #567428)
Utilizator | dinu dan dinud | Data | 30 martie 2011 07:54:12 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 65 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include<stdio.h>
#define MMM 6000002
int pi,pf,max,n,i;
long v[MMM],s[MMM];
FILE *f = fopen("ssm.in","r");
FILE *g = fopen("ssm.out","w");
int main (){
fscanf(f,"%d",&n);
fscanf(f,"%d",&v[1]);
s[1]=v[i];
max=s[1];
pi=pf=1;
for(i=2;i<=n;i++){
fscanf(f,"%d",&v[i]);
if(s[i-1]+v[i]<v[i]){
pi=i;
s[i]=v[i];
}else
s[i]=s[i-1]+v[i];
if(s[i]>max){
pf=i;
max=s[i];
}
}
fprintf(g,"%d %d %d",max,pi,pf);
fclose(f);
fclose(g);
return 0;
}