Pagini recente » Cod sursa (job #3268551) | Cod sursa (job #986577) | Borderou de evaluare (job #1736306) | Borderou de evaluare (job #508977) | Cod sursa (job #1975551)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
long long n,l,c,rez[35],put[70],d,x,k,s;
struct ban{
long long exp,nr,ind;
}v[35];
void puteri()
{
put[0]=1;
while(l/put[d]>=c)
{
++d;
put[d]=put[d-1]*c;
}
}
bool comp(ban x, ban y)
{
return x.exp<y.exp;
}
int main()
{
f>>n>>c>>l;
k=n;
puteri();
for(long long i=1;i<=n;++i)
{
f>>v[i].exp>>v[i].nr;
v[i].ind=i;
}
sort(v+1,v+n+1,comp);
while(v[n].exp>d)
{
rez[v[n].ind]=0;
--n;
}
while(n && l)
{
x=l/put[v[n].exp];
x=min(x,v[n].nr);
l-=put[v[n].exp]*x;
rez[v[n].ind]=x;
s+=x;
--n;
}
g<<s<<'\n';
for(long long i=1;i<=k;++i)
{
g<<rez[i]<<' ';
}
return 0;
}