Pagini recente » Cod sursa (job #2054700) | Cod sursa (job #2275293) | Cod sursa (job #1887981) | Cod sursa (job #23087) | Cod sursa (job #487040)
Cod sursa(job #487040)
#include <fstream>
using namespace std;
int n, m, k, l;
int d[100002], v[100002];
int tot;
int main()
{
ifstream fin("progresii.in");
ofstream fout("progresii.out");
fin >> n >> m >> k >> l;
for (int i = 1; i <= n; ++i)
{
fin >> d[i];
d[i] *= -1, d[i] += l, ++d[i];
d[i] += d[i - 1];
}
tot = d[n];
for (int i = n; i >= 1 && tot > k; --i)
if (tot - (d[i] - d[i - 1]) + (d[i] - d[i - 1]) / m + 1 >= k)
{
tot -= d[i] - d[i - 1], tot += (d[i] - d[i - 1]) / m + 1;
int aux = (d[i] - d[i - 1]) / m, res;
if (aux != 0) res = (d[i] - d[i - 1]) / aux;
else res = 1;
v[i] = res + 1;
}
else
{
v[i] = (d[i] - d[i - 1]) / (k - 1);
break;
}
for (int i = 1; i <= n; ++i)
fout << (v[i] == 0 ? 1 : v[i]) << '\n';
fin.close();
fout.close();
}