Pagini recente » Istoria paginii runda/oji_23022025 | Cod sursa (job #2471452) | Cod sursa (job #2267545) | Cod sursa (job #2136039) | Cod sursa (job #2506592)
#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("shop.in");
ofstream cout("shop.out");
int main()
{
long long int n, l, c, a, nr[40], val[40], ord[40], i, d, mon = 0;
cin >> n >> c >> l;
for(i = 1; i <= n; ++i)
{
cin >> a >> nr[i];
val[i] = pow(c, a);
ord[i] = i;
}
bool s = 0;
while(!s)
{
s = 1;
for(i = 1; i < n; ++i)
if(val[i] < val[i + 1])
{
s = 0;
swap(nr[i], nr[i + 1]);
swap(val[i], val[i + 1]);
swap(ord[i], ord[i + 1]);
}
}
for(i = 1; i <= n; ++i)
{
d = l/val[i];
if(d > nr[i])
{
l = l - nr[i] * val[i];
mon += nr[i];
}
else
{
nr[i] = d;
l = l - d * val[i];
mon += d;
}
}
s = 0;
while(!s)
{
s = 1;
for(i = 1; i < n; ++i)
if(ord[i] > ord[i + 1])
{
s = 0;
swap(nr[i], nr[i + 1]);
swap(ord[i], ord[i + 1]);
}
}
cout << mon << '\n';
for(i = 1; i <= n; ++i)
cout << nr[i] << ' ';
return 0;
}