Pagini recente » Cod sursa (job #3204534) | Cod sursa (job #2785436) | Cod sursa (job #2382721) | Cod sursa (job #2894799) | Cod sursa (job #39640)
Cod sursa(job #39640)
#include<stdio.h>
#define nmax 1000
long long pow(long long a,long long b) {long long p=1,i; for(i=1;i<=b;i++) p*=a; return p;}
long long l;
long long s[nmax],nr,a[nmax],viz[nmax],max,b[nmax],c,n,i,j;
int main()
{freopen("shop.in","r",stdin);
scanf("%lld%lld%lld",&n,&c,&l);
for(i=1;i<=n;i++)
scanf("%lld%lld",&a[i],&b[i]);
while(l)
{for(i=1,max=-1;i<=n;i++)
if(!viz[i]&&a[i]>max&&pow(c,a[i])<=l)
{
max=a[i];
j=i;
}
i=j;
j=1;
while(j*pow(c,a[i])<=l&&j<=b[i]) j++;
viz[i]=1;
j--;
s[i]=j;
l-=j*(pow(c,a[i]));
nr+=j;
}
freopen("shop.out","w",stdout);
printf("%lld\n",nr);
for(i=1;i<=n;i++)
printf("%lld ",s[i]);
fclose(stdout);
return 0;
}