Pagini recente » Cod sursa (job #988029) | Cod sursa (job #2805628) | Cod sursa (job #1076208) | Cod sursa (job #1637412) | Cod sursa (job #818633)
Cod sursa(job #818633)
#include <fstream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
using namespace std;
struct moneda
{
long long val;
long long nr;
int poz;
}v[100];
long long viz[100];
bool cmp(moneda a, moneda 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;
long long l, auxNr, nrMonede=0;
//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++)
g<<viz[i]<<" ";
}