Pagini recente » Cod sursa (job #2820076) | Cod sursa (job #780028) | Cod sursa (job #1544260) | Cod sursa (job #2002660) | Cod sursa (job #1851128)
#include <bits/stdc++.h>
using namespace std;
ifstream in ( "progresii.in" );
ofstream out( "progresii.out" );
const int DIM = 1e5 + 5;
int p[DIM];
inline long long cst( long long l, int p, int m ) {
return ( l - p ) / m + 1;
}
int main( void ) {
ios::sync_with_stdio( false );
long long k, l; int n, m;
in >> n >> m >> k >> l;
long long nr = 0;
for( int i = 1; i <= n; i ++ ) {
in >> p[i];
nr += cst( l, p[i], m );
}
if( nr > k )
out << -1 << endl;
else {
for( int i = 1; i <= n; i ++ ) {
int st = 1, fi = m;
while( st <= fi ) {
int md = st + ( fi - st ) / 2;
if( nr - cst( l, p[i], m ) + cst( l, p[i], md ) <= k )
fi = md - 1;
else
st = md + 1;
}
out << st << "\n";
nr += cst( l, p[i], st ) - cst( l, p[i], m );
}
}
return 0;
}