Pagini recente » Cod sursa (job #444197) | Cod sursa (job #1218007) | Cod sursa (job #32239) | Cod sursa (job #2050734) | Cod sursa (job #1425940)
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
const int nmax=35;
struct coin{long long int value,type,amount;};
coin a[nmax];
long long int n,i,j,base,exponent,used[nmax],sum,camm,totalcoins;
bool cmp (coin A , coin B)
{
return A.value>B.value;
}
int main()
{
f>>n>>base>>sum;
for (i=1;i<=n;i++)
{
f>>exponent>>camm;
a[i].type=i;
a[i].value=pow(base,exponent);
a[i].amount=camm;
}
sort(a+1,a+n+1,cmp);
i=1;
while (sum && i<=n)
{
while (sum>=a[i].value && a[i].amount>0)
{
used[a[i].type]++;
sum-=a[i].value;
a[i].amount--;
}
i++;
}
for (i=1;i<=n;i++)
totalcoins+=used[i];
g<<totalcoins<<'\n';
for (i=1;i<=n;i++)
g<<used[i]<<" ";
return 0;
}