Pagini recente » Cod sursa (job #220008) | Cod sursa (job #1553584) | Cod sursa (job #1676087) | Cod sursa (job #2591331) | Cod sursa (job #183977)
Cod sursa(job #183977)
#include <stdio.h>
#define MAX 110001
FILE *f,*g;
long n,m,i,j,sum[MAX], a[MAX],ratia,ls,ld,mijloc;
long k,l;
void precalculeaza(void)
{
long i,j;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
sum[i]=sum[i]+(l-a[j])/m+1;
}
}
long calculeaza(long x, long ratia)
{
long contor=0,i;
for(i=a[x];i<=l;i+=ratia) contor++;
return contor;
}
int main()
{
f=fopen("progresii.in","r");
g=fopen("progresii.out","w");
fscanf(f,"%ld %ld %ld %ld\n",&n,&m,&k,&l);
for(i=1;i<=n;i++) fscanf(f,"%ld\n",&a[i]);
precalculeaza();
for(i=1;i<=n;i++)
{
ls=1;
ld=m;
while(ls!=ld)
{
mijloc=(ls+ld)/2;
if((l-a[i])/mijloc+1+sum[i]>k)
ls=mijloc+1;
else
ld=mijloc;
}
k=k-(l-a[i])/ls-1;
fprintf(g,"%ld\n",ls);
}
fclose(f); fclose(g);
return 0;
}