Cod sursa(job #818621)

Utilizator Detrol2kGuianu Leon Detrol2k Data 17 noiembrie 2012 19:10:37
Problema Shop Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#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]<<" ";
}