Pagini recente » Cod sursa (job #2293436) | Cod sursa (job #2187784) | Cod sursa (job #1388494) | Cod sursa (job #1679081) | Cod sursa (job #1483849)
#include <fstream>
using namespace std;
ifstream fin("progresii.in");
ofstream fout("progresii.out");
typedef long long i64;
const int nmax= 100000;
i64 p[nmax+1];
int main( ) {
i64 n, m, k, l, sum= 0;
fin>>n>>m>>k>>l;
for ( i64 i= 1; i<=n; ++i ) {
fin>>p[i];
p[i]= l-p[i];
sum= sum+p[i]/m;
}
k-= n;
if ( sum>k ) {
fout<<"-1\n";
} else {
i64 m2;
for ( m2= 1; m2*2<=m; m2*= 2 ) ;
for ( i64 i= 1; i<=n; ++i ) {
int sol= m;
for ( i64 step= m2; step>0; step/= 2 ) {
if ( sol-step>=1 && p[i]/(sol-step)<=k-sum ) {
sol-= step;
}
}
k= k-p[i]/sol;
sum= sum-p[i]/m;
fout<<sol<<"\n";
}
}
return 0;
}