Difference between revisions of "Solução: Problema do colecionador de moedas (Paulo Cesar)"

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
 
Line 1: Line 1:
<code lang="C++">
+
<code lang="cpp">
 
#include<iostream>
 
#include<iostream>
 
#include<vector>
 
#include<vector>

Latest revision as of 12:37, 20 May 2009

#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;
}