Solução: Problema do colecionador de moedas (Paulo Cesar)

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
#include<iostream>
#include<vector>
#include<algorithm>
 
using namespace std;
 
class Market
{
public:
  Market();
  int find_max_seals();
private:
  vector<int> _seals;
  int _money;
};
 
Market::
Market()
{
  _money = 0;
 
  int size;
  cin >> size;
  for(int cont = 0; cont < size; cont++)
  {
    int value;
    cin >> value;
    _seals.push_back(value);
  }
 
  cin >> size;
  for(int cont = 0; cont < size; cont++)
  {
    int name;
    cin >> name;
    _money += _seals[name];
  }  
}
 
int Market::
find_max_seals()
{
  sort(_seals.begin(),_seals.end());
  int value = 0, quant = 0;
  while(value <= _money)
  {
    value+=_seals[quant];
    if(value <= _money)
      quant++;
  }
  return quant;
}
 
int main()
{
  Market market = Market();
  cout << market.find_max_seals() << endl;
  return 0;
}