Pagini recente » Cod sursa (job #2552344) | Cod sursa (job #2327840) | Cod sursa (job #746145) | Cod sursa (job #1118059) | Cod sursa (job #338849)
Cod sursa(job #338849)
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f,*s;
long long int n,a,b,i,k,cate,rez[50];
struct moneda
{
long long int x;
long long int y;
long long int z;
};
moneda v[50];
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,"%lld %lld %lld",&n,&a,&b);
for(i=1;i<=n;i++)
{
fscanf(f,"%lld %lld",&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,"%lld\n",cate);
for(i=1;i<=n;i++)
fprintf(s,"%lld ",rez[i]);
fclose(s);
return 0;
}