Cod sursa(job #2657979)

Utilizator loraclorac lorac lorac Data 12 octombrie 2020 20:11:59
Problema Progresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("progresii.in");
ofstream out("progresii.out");
typedef long long ll;
const ll lim=1e5+4;
ll p[lim],v[lim];
int main()
{
    ll n,m,k,ck,d;
    in>>n>>m>>k>>d;
    ck=k;
    for(ll i=1;i<=n;++i)
    {
        in>>p[i];
        p[i]=d-p[i];
        v[i]=m;
        ck-=p[i]/m+1;
    }
    if(ck<0)
    {
        out<<-1<<'\n';
        return 0;
    }
    for(ll i=1;i<=n and k;++i)
    {
        ll l=1,r=m,med;
        while(l<r)
        {
            med=(l+r)/2;
            if(p[i]/med+1<=k)
                r=med;
            else l=med+1;
        }
        v[i]=l;
        k-=p[i]/l+1;
    }
    for(ll i=1;i<=n;++i)
        out<<v[i]<<'\n';
    return 0;
}