Pagini recente » Cod sursa (job #1378596) | Cod sursa (job #330418) | Cod sursa (job #2097706) | Cod sursa (job #1909091) | Cod sursa (job #1848367)
#include <fstream>
#include <iostream>
#define DIM 100010
using namespace std;
ifstream fin ("progresii.in");
ofstream fout("progresii.out");
long long N, M, K, L, x[DIM], t;
long long Min[DIM], S[DIM], sol[DIM];
long seconds(long long dist, long long pas) {
return 1 + dist/pas;
}
int main () {
ifstream fin ("progresii.in");
ofstream fout("progresii.out");
fin>>N>>M>>K>>L;
for (int i=1;i<=N;i++) {
fin>>x[i];
Min[i] = seconds(L-x[i], M);
S[i] = S[i-1] + Min[i];
//cout<<Min[i]<<" ";
}
if (S[N] > K) {
fout<<-1;
return 0;
}
for (int i=1;i<=N;i++) {
long long maxAcceptedSeconds = K - (S[N]-S[i]);
maxAcceptedSeconds--;
if (maxAcceptedSeconds == 0)
sol[i] = 2;
else {
sol[i] = (L-x[i])/maxAcceptedSeconds;
if ((L-x[i])%maxAcceptedSeconds != 0)
sol[i]++;
}
K-=seconds(L-x[i], sol[i]);
}
for (int i=1;i<=N;i++)
fout<<sol[i]<<"\n";
return 0;
}