Pagini recente » Cod sursa (job #37971) | Cod sursa (job #1631107) | Cod sursa (job #2353174) | Cod sursa (job #197666) | Cod sursa (job #163686)
Cod sursa(job #163686)
#include<fstream.h>
#include<math.h>
long long n,m,k,l,d,cat;
long v[100001],i,j,p,ok;
long long min(long long a, long long b){
if(b<a)
return b;
return a;
}
int main(){
ifstream fin("progresii.in");
ofstream fout("progresii.out");
fin>>n>>m>>k>>l;
for(i=1;i<=n;i++){
fin>>p;
d=l-p;
v[i]=min(m-d%m,d);
ok=0;
while(cat<k && v[i]>1 && ok==0){
ok=1;
for(j=2;j<=v[i];j++)
if(v[i]%j==0 && cat+d/(v[i]/j)<=k){
v[i]/=j;
ok=0;
break;
}
}
cat+=d/v[i];
}
if(cat>k){
v[n]++;
cat--;
}
if(cat>k)
fout<<"-1"<<'\n';
else{
for(i=1;i<=n;i++)
fout<<v[i]<<'\n';
}
fin.close();
fout.close();
return 0;
}