Pagini recente » Cod sursa (job #222103) | Cod sursa (job #2354384) | Cod sursa (job #2400407) | Cod sursa (job #3138642) | Cod sursa (job #818613)
Cod sursa(job #818613)
#include <fstream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
using namespace std;
struct putere
{
int p;
int nr;
int poz;
}v[100];
int viz[100];
inline bool cmp(putere a, putere b)
{
if(a.p > b.p)
return true;
else
return false;
}
int main()
{
ifstream f("shop.in");
ofstream g("shop.out");
int n, c, i, j, aux, nrMonede=0;
long long l;
//Read
f>>n>>c>>l;
for(i=1; i<=n; i++)
{
f>>v[i].p>>v[i].nr;
v[i].poz = i;
}
//Compute
sort(v+1,v+n+1,cmp);
for(i=1; i<=n && l; i++)
{
aux = pow(c,v[i].p);
repeat:
if(aux <= l && v[i].nr)
{
l -= aux;
v[i].nr--;
viz[v[i].poz]++;
nrMonede++;
goto repeat;
}
}
//Print
g<<nrMonede<<endl;
for(i=1; i<=n; i++)
if(viz[i])
g<<viz[i]<<" ";
}