Pagini recente » Cod sursa (job #3158959) | Cod sursa (job #2192871) | Cod sursa (job #266549) | Cod sursa (job #1511766) | Cod sursa (job #2002416)
#include <cstdio>
int n,c;
long long b[80],p[80],fol[80];
long long arr[80];
unsigned long long l;
void desc(unsigned long long nr)
{
int pos=0;
while(nr!=0)
{
b[pos]=nr%c;
nr/=c;
pos++;
}
}
int main()
{
FILE *fin;
fin=fopen ("shop.in","r");
freopen ("shop.out","w",stdout);
fscanf(fin,"%d%d%llu",&n,&c,&l);
long long int bx;
for(int i=1;i<=n;i++)
{
fscanf(fin,"%d%lld",&arr[i],&bx);
p[arr[i]]=bx;
}
desc(l);
for(int i=70;i>=0;i--)
{
if(b[i]!=0)
{
if(b[i]>=p[i])
{
b[i]-=p[i];
fol[i]+=p[i];
if(i!=0) b[i-1]+=c*b[i];
}
else
{
fol[i]=b[i];
}
}
}
long long sum=0;
for(int i=1;i<=n;i++) sum+=fol[arr[i]];
printf("%lld\n",sum);
for(int i=1;i<=n;i++)
{
printf("%lld ",fol[arr[i]]);
}
fclose(fin);
}