Pagini recente » Cod sursa (job #2721757) | Cod sursa (job #730859) | Cod sursa (job #1964791) | Cod sursa (job #360640) | Cod sursa (job #2080782)
#include <cstdio>
#include <algorithm>
using namespace std;
pair <int,pair <int,int> > v[31];
int f[30];
int main()
{
FILE *fin=fopen ("shop.in","r");
FILE *fout=fopen ("shop.out","w");
int n,c,i,j;
long long l,mn,val;
fscanf (fin,"%d%d%lld",&n,&c,&l);
for (i=1;i<=n;i++){
fscanf (fin,"%d%d",&v[i].first,&v[i].second.first);
v[i].second.second=i;
}
sort (v+1,v+n+1);
mn=0;
for (i=n;i>0;i--){
val=1;
for (j=1;j<=v[i].first;j++)
val*=c;
if (l/val<=v[i].second.first){
f[v[i].second.second]=l/val;
mn+=l/val;
l%=val;
}
else {
f[v[i].second.second]=v[i].second.first;
mn+=v[i].second.first;
l=l-val*v[i].second.first;
}
}
fprintf (fout,"%lld\n",mn);
for (i=1;i<=n;i++)
fprintf (fout,"%d ",f[i]);
return 0;
}