Pagini recente » Cod sursa (job #2945544) | Cod sursa (job #1684371) | Cod sursa (job #2135343) | Cod sursa (job #351937) | Cod sursa (job #2496722)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
int n,k,l,sol[100000],nr,ok;
struct mon
{
int c,v,ci,poz;
}m[50];
void calc(int i)
{
int aux=m[i].v;
m[i].v=1;
while(aux)m[i].v*=k,aux--;
}
bool cmp(mon ax,mon ay)
{
if(ok)
return (ax.poz<ay.poz);
return (ax.v>ay.v);
}
int main()
{
f>>n>>k>>l;
for(int i=1;i<=n;++i)
{
f>>m[i].v>>m[i].c;m[i].ci=m[i].c;m[i].poz=i;
calc(i);
}
sort(m+1,m+n+1,cmp);
// for(int i=1;i<=n;++i)g<<m[i].v<<endl;
for(int i=1;i<=n;++i)
{
while(l-m[i].v>=0&&m[i].c)
{
l-=m[i].v;
nr++;m[i].c--;
}
}
g<<nr<<'\n';
ok=1;
sort(m+1,m+n+1,cmp);
for(int i=1;i<=n;++i)g<<m[i].ci-m[i].c<<" ";
g<<'\n';
return 0;
}