Pagini recente » Cod sursa (job #1451111) | Cod sursa (job #784082) | Cod sursa (job #2922454) | Cod sursa (job #1707426) | Cod sursa (job #1089458)
#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;
big y;
for (int i=1;i<=n && l;i++)
{
y = l / mon[i].val;
if (y > mon[i].count) y = mon[i].count;
l -= y*mon[i].val;
m += y;
rez [ mon[i].poz ] = y;
}
g << m << "\n";
for (int i=1;i<=n;i++)
if (rez[i]) g << rez[ i ] << " ";
return 0;
}