Nu aveti permisiuni pentru a descarca fisierul grader_test3.in
Cod sursa(job #2712757)
| Utilizator | Data | 26 februarie 2021 14:50:10 | |
|---|---|---|---|
| Problema | Progresii | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.77 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,d;
in>>n>>m>>k>>d;
for(ll i=1;i<=n;++i)
{
in>>p[i];
p[i]=d-p[i];
v[i]=m;
k-=p[i]/m+1;
}
if(k<0)
{
out<<-1<<'\n';
return 0;
}
for(ll i=1;i<=n and k>=0;++i)
{
ll l=max(1LL,p[i]/(k+p[i]/m+1)),r=m,med;
while(l<r)
{
med=(l+r)/2;
if(p[i]/med-p[i]/m<=k)
r=med;
else l=med+1;
}
v[i]=l;
k-=p[i]/l-p[i]/m;
}
for(ll i=1;i<=n;++i)
out<<v[i]<<'\n';
return 0;
}
