Pagini recente » Cod sursa (job #372463) | Cod sursa (job #523724) | Cod sursa (job #32142) | Cod sursa (job #1056735) | Cod sursa (job #1994528)
#include <bits/stdc++.h>
#define MAXN 100001
double t[MAXN + 1];
double p[MAXN + 1];
int main() {
std::ifstream cin("progresii.in");
std::ofstream cout("progresii.out");
int i, n;
double m, l, k;
std::ios::sync_with_stdio(false);
cin >> n >> m >> k >> l;
for(i = 1; i <= n; i++) {
cin >> p[i];
p[i]--;
}
for(i = n; i >= 1; i--)
t[i] = t[i + 1] + (l - p[i]) / m;
long long p2 = 1;
while(p2 <= (int) m)
p2 <<= 1;
p2 >>= 1;
for(i = 1; i <= n; i++) {
int rez = 0;
for(int pas = p2; pas; pas >>= 1)
if(t[i + 1] + (double)((l - p[i]) / (rez + pas)) > k)
rez += pas;
rez++;
k -= (double)((l - p[i]) / rez);
cout << rez << std::endl;
}
cin.close();
cout.close();
return 0;
}