Pagini recente » Cod sursa (job #1469855) | Cod sursa (job #1857122) | Cod sursa (job #138024) | Cod sursa (job #1889947) | Cod sursa (job #2126836)
#include <fstream>
using namespace std;
int sum[100001],d[100001];
int main()
{ int 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;
int 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;
}