Nu aveti permisiuni pentru a descarca fisierul grader_test10.in
Cod sursa(job #1284752)
Utilizator | Alexandru AlexT | Data | 6 decembrie 2014 19:46:08 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *f,*g;
f=fopen("ssm.in","r");
g=fopen("ssm.out","w");
int pozneg,neg,poz,pozmax,inceputmax,s,smax,inceput,i,j,n,*a;
neg=-1000000000;
fscanf(f,"%d ",&n);
a=(int*)malloc(n*sizeof(int));
poz=0;
smax=0;
s=0;
inceputmax=0;
inceput=0;
pozmax=0;
for(i=0;i<n;i++)
{
fscanf(f,"%d ",&a[i]);
s+=a[i];
if(s<0)
{
s=0;
inceput=i+1;
}
if(s>smax)
{
smax=s;
inceputmax=inceput;
pozmax=i;
}
if((a[i]>neg)&&(a[i]<1)){
neg=a[i];
pozneg=i;
printf("%d ",neg);
}
}
if(smax>0){
fprintf(g,"%d %d %d ",smax,inceputmax+1,pozmax+1);
}
else{
fprintf(g,"%d %d %d ",neg,pozneg+1,pozneg+1);
}
free(a);
return 0;
}