Pagini recente » Istoria paginii runda/ne-auzim | Cod sursa (job #857558) | Cod sursa (job #2828876) | Cod sursa (job #481369) | Cod sursa (job #412842)
Cod sursa(job #412842)
#include<stdio.h>
#include<stdlib.h>
void ssm(int n,int *v,int *sum)
{
sum[-1]=0;
int i,min=sum[-1];
for(i=0;i<n;i++)
sum[i]=v[i]+sum[i-1];
int bests=-1000,*best;
best=(int*)malloc(n*sizeof(int));
int poz2,length=0,poz1;
for(i=0;i<n;i++)
{ length++;
best[i]=sum[i]-min;
if(min>sum[i]) min=sum[i];
if(bests<best[i]) {bests=best[i];
poz2=i;poz1=length;length=0;
}
}
FILE *g=fopen("ssm.out","w");
fprintf(g,"%d %d %d",bests,poz1+1,poz2+1);
fclose(g);
}
int main(int argc,char **argv)
{
/* if(argc<2)
{
fprintf(stderr,"nu ai argumente");
exit(1);
}*/
FILE *f=fopen("ssm.in","r");
int n,*v,i,*sum;
fscanf(f,"%d",&n);
v=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
fscanf(f,"%d",&v[i]);
sum=(int*)malloc(n*sizeof(int));
ssm(n,v,sum);
// for(i=0;i<n;i++)
// printf("%d ",v[i]);
return 0;
}