Pagini recente » Cod sursa (job #3146861) | Cod sursa (job #1660312) | Cod sursa (job #2919899) | Cod sursa (job #2585494) | Cod sursa (job #1089439)
#include <fstream>
#include <cmath>
#include <iostream>
#include <algorithm>
typedef long long big;
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
big n,c,l,aux,m;
big rez[31];
struct moneda
{
big val;
big count;
int poz;
};
moneda mon[31];
bool cmp(moneda a, moneda b) {return a.val > b.val;}
int main()
{
f >> n >> c >> l ;
for (int i=1;i<=n;i++)
{
big a,b;
f >> a >> b;
mon[i].val = pow(c,a);
mon[i].count = b;
mon[i].poz = i;
}
sort (mon+1,mon+n+1,cmp);
int ind = 1;
while (l > 0 && ind <=n)
{
if (mon[ind].count)
{
for (int k = 1; k<=mon[ind].count; k++ )
{
rez[mon[ind].poz] ++;
l -=mon[ind].val;
m++;
if ( l - mon[ind].val < 0 ) break;
}
}
ind ++;
}
g << m << "\n";
for (int i=1;i<=n;i++)
if (rez[i]) g << rez[ i ] << " ";
return 0;
}