Pagini recente » Cod sursa (job #1653916) | Cod sursa (job #1896137) | Cod sursa (job #498910) | Cod sursa (job #155595) | Cod sursa (job #983839)
Cod sursa(job #983839)
#include<stdio.h>
#define maxdim 100005
FILE*f=fopen("progresii.in","r");
FILE*g=fopen("progresii.out","w");
int n,m;
int p[maxdim];
long long k,l;
long long needed[maxdim];
int main () {
fscanf(f,"%d %d %lld %lld",&n,&m,&k,&l);
for ( int i = 1 ; i <= n ; ++i ){
fscanf(f,"%d",&p[i]);
}
for ( int i = n ; i >= 1 ; --i ){
needed[i] = needed[i+1] + (l-p[i])/m + 1;
}
if ( needed[1] > k ){
fprintf(g,"-1\n");
fclose(f); fclose(g);
return 0;
}
for ( int i = 1 ; i <= n ; ++i ){
int sol = 0;
if ( k-needed[i+1]-1 == 0 ){
sol = l-p[i]+1;
}
else{
sol = (l-p[i])/(k-needed[i+1]-1);
if ( sol*(k-needed[i+1]-1) < (l-p[i]) ){
++sol;
}
}
fprintf(g,"%d\n",sol);
k -= ((l-p[i])/sol + 1);
}
fclose(f);
fclose(g);
return 0;
}