Pagini recente » Cod sursa (job #1235513) | Cod sursa (job #1869485)
#include <fstream>
using namespace std;
ifstream fin("progresii.in");
ofstream fout("progresii.out");
long long n,m,j,k,l,i,p[100005],s,sol[100005],ct,m1;
int main()
{fin>>n>>m>>k>>l;
for(i=1;i<=n;i++)
{fin>>p[i];
s=s+l-p[i]+1;
}
for(i=n;i>=1;i--)
{if(s-(l-p[i]+1)+(l-p[i])/m+1>k){ct++;m1=m;while(m1-1>0&&(l-p[i])/m1==(l-p[i])/(m1-1))m1--;sol[ct]=m1;s=s-(l-p[i]+1)+(l-p[i])/m+1;}
else {s=s-(l-p[i]+1);
if(k-s-1!=0)m=(l-p[i])/(k-s-1);
else {while(m>0&&s+(l-p[i])/m+1<=k)
m--;
m++;
}
m1=m+1;
while(m1>0&&s+(l-p[i])/m1+1<=k)m1--;
m1++;
s=k;ct++;sol[ct]=m1;break;
}
if(s==k)break;
}
for(i=n;i>=1;i--)
{if(sol[i])fout<<sol[i]<<"\n";
else fout<<"1\n";
}
}