Pagini recente » Cod sursa (job #2434290) | Cod sursa (job #63228)
Cod sursa(job #63228)
#include<stdio.h>
long long int n,c,l,p[40],i,j,k,old[40],max[40],nr[40],sol,x[40];
int main()
{
FILE *f,*g;
f=fopen("shop.in","r");
g=fopen("shop.out","w");
fscanf(f,"%lld%lld%lld",&n,&c,&l);
p[0]=1;while(p[i]<l){i++;p[i]=p[i-1]*c;}
for(j=1;j<=n;j++)
{ fscanf(f,"%lld",&k);
old[k]=j;
fscanf(f,"%lld",&max[k]);
}
nr[0]=l;
for(k=32;k>=1;k--)
{
if(max[k])
while((nr[k]<max[k])&&(nr[0]>=p[k]))
{ nr[k]++;nr[0]-=p[k];}
}
for(j=0;j<=32;j++)
if(nr[j])
{ sol+=nr[j];
x[old[j]]=nr[j];
}
fprintf(g,"%lld\n",sol);
for(j=1;j<=n;j++)
fprintf(g,"%lld ",x[j]);
fprintf(g,"\n");
fcloseall();
return 0;
}