Pagini recente » Cod sursa (job #2897312) | Cod sursa (job #1766865) | Cod sursa (job #2316143) | Cod sursa (job #1669261) | Cod sursa (job #1851149)
#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 << "\n";
else {
for( int i = 1; i <= n; i ++ ) {
nr -= cst( l, p[i], m );
int t;
if( k - nr - 1 == 0 )
t = l - p[i] + 1;
else
t = ( l - p[i] ) / ( k - nr - 1 );
if( t == 0 )
t = 1;
nr += cst( l, p[i], t );
while( t > 1 && nr - cst( l, p[i], t ) + cst( l, p[i], t - 1 ) <= k )
t --;
while( t > 0 && nr > k ) {
nr += cst( l, p[i], t + 1 ) - cst( l, p[i], t + 1 );
t ++;
}
out << t << "\n";
}
}
return 0;
}