Pagini recente » Cod sursa (job #1141043) | Monitorul de evaluare | Cod sursa (job #433853) | Cod sursa (job #1381377) | Cod sursa (job #183652)
Cod sursa(job #183652)
#include <stdio.h>
#define MAX 100001
FILE *f,*g;
long n,m,i,j,sum[MAX], a[MAX],ratia;
unsigned 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 %lud %lud\n",&n,&m,&k,&l);
for(i=1;i<=n;i++) fscanf(f,"%ld\n",&a[i]);
precalculeaza();
for(i=1;i<=n;i++)
{
ratia=1;
while((calculeaza(i,ratia)+sum[i]<=k)&&(ratia!=m))
{
ratia++;
}
k-=calculeaza(i,ratia);
fprintf(g,"%ld\n",ratia);
}
fclose(f); fclose(g);
return 0;
}