Pagini recente » Cod sursa (job #1237133) | Cod sursa (job #1448673) | Cod sursa (job #2887698) | Cod sursa (job #1068157) | Cod sursa (job #1948985)
#include <cstdio>
#define MAXN 100000
int v[MAXN];
inline long long min2(long long a, long long b){
return a < b ? a : b;
}
inline long long max2(long long a, long long b){
return a > b ? a : b;
}
int main(){
FILE *in = fopen("progresii.in", "r");
int n, m, i;
long long k, l, t, x;
fscanf(in, "%d%d%lld%lld", &n, &m, &k, &l);
for(i = 0; i < n; i++)
fscanf(in, "%d", &v[i]);
fclose(in);
t = 0;
for(i = 0; i < n; i++)
t += 1 + (l - v[i]) / m;
FILE *out = fopen("progresii.out", "w");
if(t > k)
fprintf(out, "-1");
else{
for(i = 0; i < n; i++){
t -= 1 + (l - v[i]) / m;
if(k - t == 1)
x = l - v[i] + 1;
else
x = min2(m, max2(1, (l - v[i] + k - t - 2) / (k - t - 1)));
fprintf(out, "%d\n", x);
k -= 1 + (l - v[i]) / x;
}
}
fclose(out);
return 0;
}