Pagini recente » Cod sursa (job #1661492) | Cod sursa (job #1520095) | Cod sursa (job #2222181) | Cod sursa (job #2077028) | Cod sursa (job #3137117)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("shop.in");
ofstream fout ("shop.out");
struct el
{
int val,c,poz;
};
el v[31];
int n,c,l,j,i,g,fr[31];
long long p,sum,sol;
int cmp (const el &a,const el &b)
{
return a.val>b.val;
}
int main()
{
fin>>n>>c>>l;
if (l==0)
{
fout<<0;
return 0;
}
for (i=1; i<=n; i++)
{
fin>>v[i].val>>v[i].c;
v[i].poz=i;
}
sort (v+1,v+n+1,cmp);
for (i=1; i<=n; i++)
{
p=1;
for (j=1; j<=v[i].val; j++)
{
p=p*c;
if (p>l)
break;
}
if (j-1!=v[i].val)
continue;
sum=min (1ll*v[i].c,l/p);
sol+=sum;
fr[v[i].poz]+=sum;
l-=sum*p;
}
fout<<sol<<"\n";
for (i=1; i<=n; i++)
fout<<fr[i]<<" ";
return 0;
}