Pagini recente » Cod sursa (job #2133200) | Cod sursa (job #1645241) | Cod sursa (job #135693) | Cod sursa (job #1416095) | Cod sursa (job #1220945)
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,c,l,i,j,p[100],nr,v[100];
FILE *f,*g;
struct val{
long long v;
long long a;
long long poz;
}x[100];
int cmp(val a, val b){
return a.v>b.v;
}
int minim(int a,int b){
if(a<b)
return a;
return b;
}
int main(){
f=fopen("shop.in","r");
g=fopen("shop.out","w");
fscanf(f,"%lld%lld%lld",&n,&c,&l);
nr=0;
p[0]=1;
while(p[nr]<=l&&nr<=34){
p[++nr]=p[nr-1]*c;
}
for(i=1;i<=n;i++){
fscanf(f,"%lld%lld",&x[i].v,&x[i].a);
x[i].poz=i;
}
nr=0;
sort(x+1,x+n+1,cmp);
for(i=1;i<=n;i++){
j=minim(l/p[x[i].v],x[i].a);
nr+=j;
l-=j*p[x[i].v];
v[x[i].poz]+=j;
}
fprintf(g,"%lld\n",nr);
for(i=1;i<=n;i++){
fprintf(g,"%lld ",v[i]);
}
fclose(f);
fclose(g);
return 0;
}