Cod sursa(job #1722255)

Utilizator felixiPuscasu Felix felixi Data 27 iunie 2016 18:35:01
Problema Progresii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;

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

typedef long long i64;

const int nmax= 100000;

i64 p[nmax+10];

int main(  ) {
    i64 n, m, k, l, sum= 0;
    fin>>n>>m>>k>>l;
    for ( i64 i= 1; i<=n; ++i ) {
        fin>>p[i];
        p[i]= l-p[i];
        sum= sum+p[i]/m;
    }
    k-= n;

    if ( sum>k ) {
        fout<<"-1\n";
    } else {
        for ( i64 i= 1, sol; i<=n; ++i ) {
            sum= sum-p[i]/m;
            sol= p[i]/(k-sum+1)+1;
            if ( p[i]<=k-sum ) {
                sol= 1;
            }
            k= k-p[i]/sol;

            fout<<sol<<"\n";
        }
    }

    return 0;
}