Cod sursa(job #818633)

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