Pagini recente » Cod sursa (job #2535107) | Cod sursa (job #2943661) | Cod sursa (job #2172529) | Cod sursa (job #2434538) | Cod sursa (job #165777)
Cod sursa(job #165777)
#include <cstdio>
const int maxn = 100001;
FILE *in = fopen("progresii.in","r"), *out = fopen("progresii.out","w");
int n, m;
long long k, l;
int a[maxn];
int b[maxn];
long long tot;
void read()
{
fscanf(in, "%d %d %lld %lld", &n, &m, &k, &l);
for ( int i = 1; i <= n; ++i )
{
fscanf(in, "%d", &a[i]);
tot = tot + (long long)(l - a[i] + 1);
}
}
void go()
{
int vi;
long long kk, h;
for ( int i = n; i; --i )
{
vi = 1;
kk = (long long)l - a[i];
h = 0;
//printf("%lld ", kk + 1);
while ( vi < m && tot - h > k )
{
++vi;
h = (kk + 1) - (long long)((kk / vi) + 1);
}
tot -= h;
//printf("%lld\n", h);
b[i] = vi;
}
// if ( tot > k )
// {
// fprintf(out, "%d\n", -1);
// return;
// }
for ( int i = 1; i <= n; ++i )
fprintf(out, "%d\n", b[i]);
}
int main()
{
read();
go();
return 0;
}