Pagini recente » Cod sursa (job #1468558) | Cod sursa (job #353717) | Cod sursa (job #588086) | Cod sursa (job #1334800) | Cod sursa (job #486842)
Cod sursa(job #486842)
#include<fstream>
using namespace std;
const char iname[]="progresii.in";
const char oname[]="progresii.out";
const int maxn=100005;
ifstream f(iname);
ofstream g(oname);
typedef long long ll;
ll n,m,k,l,i,j,step,p[maxn],rez;
int main()
{
f>>n>>m>>k>>l;
for(i=1;i<=n;++i)
f>>p[i],p[i]=l-p[i],rez+=p[i]/m+1;
if(rez-k>0)
{
g<<"-1\n";
return 0;
}
for(i=1;i<=n;++i)
{
rez-=p[i]/m+1;
for(step=(1<<30),j=0;step;step>>=1)
if(j+step<=m)
if(rez+(p[i]/(j+step)+1)>k)
j+=step;
++j;
rez+=(p[i]/(j+step)+1);
g<<j<<"\n";
}
}