Pagini recente » Cod sursa (job #101907) | Cod sursa (job #3218196) | Cod sursa (job #1158701) | Cod sursa (job #1228353) | Cod sursa (job #2563978)
#include <bits/stdc++.h>
using namespace std;
ifstream in("shop.in");
ofstream out("shop.out");
short n,c,a,ord[31];
int nr[31],mon=0,val[31],d;
long long l;
int main()
{
int i,j;
in>>n>>c>>l;
for(i=1;i<=n;++i)
{
in>>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]);
}
}
out<<mon<<endl;
for(i=1;i<=n;++i)
out<<nr[i]<<" ";
return 0;
}