Pagini recente » Cod sursa (job #1532824) | Cod sursa (job #960058) | Cod sursa (job #1834879) | Cod sursa (job #1188124) | Cod sursa (job #268056)
Cod sursa(job #268056)
#include<algorithm>
using namespace std;
short n,c;
long long l;
struct mon{
short p,tip,uz;
int f;};
mon a[31];
long long pow(short x,short p){
int i;
long long nr;
for(i=nr=1; i<=p; nr*=x,++i);
return nr;}
int cmp(mon a,mon b){
return a.p<b.p;}
void solve(){
short i,j;
int k;
long long x,sum;
scanf("%hd%hd%lld",&n,&c,&l);
for(i=1; i<=n; a[i].tip=i++)
scanf("%hd%d",&a[i].p,&a[i].f);
sort(a+1,a+n+1,cmp);
for(i=n,k=0,sum=l; sum; ){
if(!a[i].f)
--i;
else{
for(x=pow(c,a[i].p); sum-x>=0&&a[i].f; sum-=x,++a[i].uz,--a[i].f,++k);
--i;}}
for(printf("%d\n",k),i=1; i<=n; ++i)
for(j=1; j<=n; ++j)
if(a[j].tip==i){
printf("%hd ",a[j].uz);
j=n+1;}}
int main(){
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
solve();
return 0;}