Pagini recente » Istoria paginii runda/prelot2 | Cod sursa (job #2893647) | Statistici Shanel Alge (normanff3112) | Cod sursa (job #1500092) | Cod sursa (job #183976)
Cod sursa(job #183976)
#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]+1)/mijloc+sum[i]>k)
ls=mijloc+1;
else
ld=mijloc;
}
k=k-(l-a[i]+1)/ls;
fprintf(g,"%ld\n",ls);
}
fclose(f); fclose(g);
return 0;
}