Pagini recente » Cod sursa (job #1326092) | Cod sursa (job #1842877) | Cod sursa (job #3214148) | Cod sursa (job #1377785) | Cod sursa (job #1867272)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("shop.in");
ofstream fout ("shop.out");
struct moneda{
int val;
int nr;
int poz;
}v[35];
int folosinta[35];
long long put(int c,int exp)
{
long long rez = c;
if (exp==0) return 1;
for (int i=2;i<=exp;i++)
rez*=c;
return rez;
}
bool cmp (moneda a, moneda b)
{
return a.val>b.val;
}
int main()
{
long long L;
int n,c;
fin >> n >> c >> L;
for (int i=1;i<=n;i++)
{
fin >> v[i].val >> v[i].nr;
v[i].poz = i;
}
sort (v+1,v+n+1,cmp);
int i=1;
long long suma=0;
while (L)
{
long long putere = put (c,v[i].val);
long long val;
if (L/putere > v[i].nr) val = v[i].nr;
else val = L/putere;
L = L - putere*val;
folosinta[v[i].poz]=val;
suma+=val;
i++;
}
fout << suma << "\n";
for (int j=1;j<=n;j++)
fout << folosinta[j] << " ";
}