Pagini recente » Cod sursa (job #1872154) | Cod sursa (job #1352432) | Cod sursa (job #619947) | Cod sursa (job #2314956) | Cod sursa (job #335498)
Cod sursa(job #335498)
#include<fstream>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
const int maxn=35;
typedef long long int64;
int64 n,c,l,i,k,maxt,powers[40],p;
struct nod
{
long long a;
long long b;
int many;
}a[maxn];
int main()
{
f>>n>>c>>l;
powers[0]=1;
i=0;
while(powers[i]<=(l/c))
powers[i+1]=powers[i]*c,++i;
for(i=1;i<=n;++i)
f>>a[i].a>>a[i].b;
a[34].a=34;
powers[34]=-1;
while(l)
{
maxt=34;
for(i=1;i<=n;++i)
if(powers[a[i].a]<=l&&powers[a[i].a]>powers[a[maxt].a]&&a[i].b>0)
maxt=i;
k=min(a[maxt].b,l/powers[a[maxt].a]);
a[maxt].many+=k;
l-=k*powers[a[maxt].a];
a[maxt].b-=k;
p+=k;
}
g<<p<<"\n";
for(i=1;i<=n;++i)
g<<a[i].many<<" ";
g<<"\n";
f.close();
g.close();
return 0;
}