Cod sursa(job #1863344)

Utilizator dani_mocanuDani Mocanu dani_mocanu Data 30 ianuarie 2017 20:53:20
Problema Progresii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("progresii.in");
ofstream fout("progresii.out");
const int nmax = 100005;
long long N,M,K,L,a[nmax],dp[nmax];

inline void Read()
{
    fin >> N >> M >> K >> L;
    for(int i = 1; i <= N; i++)
    {
        fin >> a[i];
        a[i] = L - a[i];
    }
}

inline void Solve()
{
    int i;
    long long cnt,eng,consE;
    for(i = N; i; --i)
    {
        dp[i] = dp[i+1] + a[i]/M + 1;
    }
    if(dp[1] > K) fout << "-1\n";
    else
    {
        for(i = 1; i <= N; i++)
        {
            eng = K - dp[i+1];
            cnt = a[i] / eng + 1; // viteza
            consE = a[i]/cnt + 1;
            K -= consE;
            fout << cnt << "\n";
        }
    }
}

int main()
{
    Read();
    Solve();
    fout.close();
    return 0;
}