Pagini recente » Cod sursa (job #2030462) | Cod sursa (job #1232976) | Cod sursa (job #2454947) | Cod sursa (job #1730389) | Cod sursa (job #932791)
Cod sursa(job #932791)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
long long n, c, l, sum, nrm, used[32], data[32];
struct mon{
long long val, m, poz;
}monede[32];
bool cmp(mon a, mon b){
return a.val > b.val;
}
long long Putere(long long a){
long long x = 1;
for(int i=1; i<=a; i++)
x *= c;
return x;
}
int main()
{
fin>>n>>c>>l;
for(int i=1; i<=n;i++){
fin>>monede[i].val>>monede[i].m;
monede[i].poz = i;
}
sort(monede + 1, monede + n + 1, cmp);
for(int i=1; i<=n; i++){
if(l == 0) break;
long long nrmax = monede[i].m, x = Putere(monede[i].val);
while(nrmax && sum <= l){
sum += x;
used[monede[i].poz]++;
nrmax--;
nrm++;
}
if(sum == l) break;
if(sum > l) sum -= x, nrm--, used[monede[i].poz]--;
}
fout<<nrm<<endl;
for(int i=1; i<=n;i++)
fout<<used[i]<<" ";
return 0;
}