Cod sursa(job #2656386)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 7 octombrie 2020 16:59:00
Problema Progresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("progresii.in");
ofstream fout("progresii.out");

const int nmax = 100005;
int n;
long long m, k, l, v[nmax], cost;

int main(){
    fin >> n >> m >> k >> l;
    for (int i = 1; i <= n; ++i){
        fin >> v[i];
        cost = 1LL * cost + 1 + 1LL * (l - v[i]) / m;
        if (cost > k){
            fout << -1;
            return 0;
        }
    }
    for (int i = 1; i <= n; ++i){
        cost = 1LL * cost - (1 + 1LL * (l - v[i]) / m);
        long long cat_mai_pot = k - cost;
        long long x;
        if (cat_mai_pot == 1){
            x = l - v[i] + 1;
        }
        else{
            x = (l - v[i]) / (cat_mai_pot - 1);
        }
        x = max(1LL, x);
        cost = 1LL * cost + 1 + 1LL * (l - v[i]) / x;
        fout << x << "\n";
    }
    fin.close();
    fout.close();
    return 0;
}