Pagini recente » Cod sursa (job #1817531) | Cod sursa (job #798799) | Cod sursa (job #2545040) | Cod sursa (job #589518) | Cod sursa (job #338845)
Cod sursa(job #338845)
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f,*s;
int n,a,b,i,k,cate,rez[50];
struct moneda
{
int x;
int y;
int z;
};
moneda v[30];
int cmp(moneda a, moneda b)
{
return a.x>b.x;
}
int main()
{
f=fopen("shop.in","r");
s=fopen("shop.out","w");
fscanf(f,"%d %d %d",&n,&a,&b);
for(i=1;i<=n;i++)
{
fscanf(f,"%d %d",&v[i].x,&v[i].y);
k=1;
while(v[i].x)
{
k*=a;
v[i].x--;
}
v[i].x=k;
v[i].z=i;
}
sort(v+1,v+n+1,cmp);
for(i=1;i<=n;i++)
{
rez[v[i].z]=min(b/v[i].x,v[i].y);
cate+=min(b/v[i].x,v[i].y);
b-=rez[v[i].z]*v[i].x;
}
fprintf(s,"%d\n",cate);
for(i=1;i<=n;i++)
fprintf(s,"%d ",rez[i]);
fclose(s);
return 0;
}