Cod sursa(job #818613)

Utilizator Detrol2kGuianu Leon Detrol2k Data 17 noiembrie 2012 18:55:44
Problema Shop Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#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]<<" ";
}