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