Pagini recente » Cod sursa (job #1783369) | Cod sursa (job #1459791) | Cod sursa (job #2160263) | Cod sursa (job #817856) | Cod sursa (job #24249)
Cod sursa(job #24249)
#include<stdio.h>
#include<values.h>
#include<alloc.h>
#define NMAX 25000
void CitFis(int *v,long int &n,long int &k)
{FILE *f;
f=fopen("secv2.in","r");
fscanf(f,"%ld %ld",&n,&k);
for(long int i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
}
void Secv(long int n,long int k,int *v)
{long int i,j,S=-MAXLONG,s2;
long int poz,Lungant=0,l,k1;
FILE *f;
f=fopen("secv2.out","w");
for(i=1;i<=n;i++)
{
for(k1=1;k1<=n;k1++)
{s2=0;
for(j=i;j<i+k1&&((i+k1)<=n);j++)
{s2=s2+v[j];}
if((i+k1)>n)s2=-MAXLONG;
if(s2>=0)
{if(s2>S&&k1>=k){S=s2;poz=i;Lungant=k1;}}
else if(-s2<-S&&k1>=k){S=s2;poz=i;Lungant=k1;}
}
}
if(n!=k)fprintf(f,"%ld %ld %ld",poz,poz+Lungant-1,S);
else {s2=0;
for(i=1;i<=n;i++)s2+=v[i];
fprintf(f,"1 %ld %ld",n,s2);}
fclose(f);
}
int main()
{long int n,k;
int *v;
v=(int *)malloc(NMAX*sizeof(int));
CitFis(v,n,k);
Secv(n,k,v);
return 0;}