Pagini recente » Cod sursa (job #2053617) | Cod sursa (job #490019) | Cod sursa (job #2279604) | Cod sursa (job #1083281) | Cod sursa (job #2079590)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
struct nod
{
int cost, monede, indice;
};
bool comp(nod x, nod y)
{
return x.cost > y.cost;
}
int main()
{
int n, c, L, P, platite[50];
nod v[50];
fin >> n >> c >> L;
for(int i=1;i<=n;i++)
{
fin >> P >> v[i].monede;
int PP=c;
if(P==0)
PP=1;
while(P-1>0)
{
PP*=c;
P--;
}
v[i].cost=PP;
v[i].indice=i;
}
sort(v+1,v+n+1,comp);
int sum=0, no=0;
for(int i=1;i<=n;i++)
{
int no_actual=0;
while(sum+v[i].cost<=L&&v[i].monede)
{
sum+=v[i].cost;
v[i].monede--;
no_actual++;
no++;
}
platite[v[i].indice]=no_actual;
}
fout << no << "\n";
for(int i=1;i<=n;i++)
fout << platite[i] << " ";
return 0;
}