Pagini recente » Cod sursa (job #1355221) | Cod sursa (job #2472413) | Cod sursa (job #3263437) | Cod sursa (job #853208) | Cod sursa (job #545861)
Cod sursa(job #545861)
#include<fstream>
#define dmax 100
using namespace std;
typedef struct moneda
{
int a,s;
long long b;
} moneda;
moneda mon[dmax];
int n,c;
long long l;
int nrm,sol[dmax];
void citire()
{
int i;
ifstream fin("shop.in");
fin>>n>>c>>l;
for (i=1; i<=n; i++)
{
fin>>mon[i].a>>mon[i].b;
mon[i].s = i;
}
fin.close();
}
long long puterea(int x)
{
int i;
long long p=1;
for (i=1; i<=x; i++)
p *= c;
return p;
}
void solve()
{
int i;
long long cc=1;
for (i=1; i<=n && l!=0; i++)
{
cc = puterea(mon[i].a);
sol[mon[i].s] = min(l / cc, mon[i].b);
nrm += sol[mon[i].s];
l -= sol[mon[i].s] * cc;
}
}
bool comp(moneda x, moneda y)
{
return x.a > y.a;
}
void afisare()
{
int i;
ofstream fout("shop.out");
fout<<nrm<<'\n';
for (i=1; i<=n; i++)
fout<<sol[i]<<" ";
fout.close();
}
int main()
{
citire();
sort(mon+1, mon+n+1, comp);
solve();
afisare();
return 0;
}