Pagini recente » Cod sursa (job #1843809) | Cod sursa (job #1843806) | Cod sursa (job #672555) | Cod sursa (job #616510) | Cod sursa (job #2126841)
#include <fstream>
using namespace std;
long long sum[100001],d[100001];
int main()
{ long long n,Max,k,l,i,s,st,dr,mij,best,poz;
ifstream f("progresii.in");
ofstream g("progresii.out");
f>>n>>Max>>k>>l;
for (i=1;i<=n;++i) {
f>>poz;
d[i]=l-poz;
sum[i]=sum[i-1]+d[i]/Max+1;
}
s=0;
for (i=1;i<=n;++i) {
st=1,dr=Max;
long long sol=Max+1;
best=sum[n]-sum[i];
while (st<=dr) {
mij=(st+dr)/2;
if (s+d[i]/mij+1+best<=k) sol=min(sol,mij),dr=mij-1;
else st=mij+1;
}
s+=d[i]/sol+1;
g<<sol<<'\n';
}
return 0;
}