Pagini recente » Cod sursa (job #614353) | Cod sursa (job #2062337) | Cod sursa (job #48381) | Cod sursa (job #3198900) | Cod sursa (job #165341)
Cod sursa(job #165341)
#include<stdio.h>
long long z,q,j,s,k,l,x,y;
int p,u,m,i;
int n,mij;
long long v[100002];
long long t[100002];
long int litri ( long 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,"%d %d %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;
t[i]=y;
}
fclose(f);
FILE *g=fopen("progresii.out","w");
if(s>k)
fprintf(g,"%d",-1);
else{
for(i=1;i<=n;i++){
s-=t[i];
x=k-s;
//p=1;
//u=m;
//z - numarul max
z=v[i];
if(x>z)
x=z;
if(v[i]%x==0)
p=v[i]/x;
else
p=v[i]/x+1;
/*while(p<=u){
mij=(p+u)/2;
if( litri(mij) < = x )
u=mij-1;
else
p=mij+1;
}
*/
k-=x;
fprintf(g,"%d\n",p);
}
}
fclose(g);
return 0;
}