Pagini recente » Cod sursa (job #278543) | Istoria paginii runda/simulare_oni_9_1 | Cod sursa (job #2079176) | Cod sursa (job #104037) | Cod sursa (job #165320)
Cod sursa(job #165320)
#include<stdio.h>
long long q,j,s,k,l,x,y;
long long p,u,mij,m,i,n;
long long v[61001];
int litri ( int m ){
int y;
if(v[i]%m==0)
y=v[i]/m;
else
y=v[i]/m+1;
return y;
}
int main(){
FILE *f=fopen("progresii.in","r");
fscanf(f,"%lld %lld %lld %lld",&n,&m,&k,&l);
for(i=1;i<=n;i++){
fscanf(f,"%lld",&x);
v[i]=l-x+1;
if(v[i]%m==0)
y=v[i]/m;
else
y=v[i]/m+1;
s+=y;
}
fclose(f);
FILE *g=fopen("progresii.out","w");
if(s>k)
fprintf(g,"%d",-1);
else{
int S=k;
for(i=1;i<=n;i++){
if(v[i]%m==0)
y=v[i]/m;
else
y=v[i]/m+1;
s-=y;
x=k-s;
p=1;
u=m;
while(p<=u){
mij=(p+u)/2;
if( litri(mij)<=x )
u=mij-1;
else
p=mij+1;
}
S-=litri(p);
k=S;
fprintf(g,"%lld\n",p);
}
}
fclose(g);
return 0;
}