Pagini recente » Cod sursa (job #2304068) | Cod sursa (job #412114) | Cod sursa (job #2303712) | Cod sursa (job #2132415) | Cod sursa (job #1312653)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
long long v[100],c,l,p,sol[100],x,n,i,sum,j;
struct poz{int t,c,d;};
poz a[35];
bool cmp(poz a,poz b)
{
return a.t<b.t;
}
int main()
{
f>>n>>c>>l;
p=1;
v[0]=1;
for (i=1;p<=10000000000000000/c;v[i]=p*c,p=p*c,i++);
for (i=1;i<=n;i++)
f>>a[i].t>>a[i].c,a[i].d=i;
sort(a+1,a+n+1,cmp);
for (i=n;i>=1;i--)
{
if (l>0)
{
if (l-v[a[i].t]*a[i].c>=0)
l=l-v[a[i].t]*a[i].c,sum+=a[i].c,sol[i]=a[i].c;
else
x=l/v[a[i].t],l=l-v[a[i].t]*x,sum+=x,sol[i]=x;
}
}
g<<sum<<'\n';
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
if (a[j].d==i)
g<<sol[j]<<' ';
}
return 0;
}