Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <cassert>
- using namespace std;
- class MoneyBox {
- public:
- explicit MoneyBox(vector<int64_t> nominals)
- : nominals_(move(nominals))
- , counts_(nominals_.size()) {
- }
- const vector<int>& GetCounts() const {
- return counts_;
- }
- int FindCoin(int64_t value)
- {
- return find(nominals_.begin(), nominals_.end(), value) - nominals_.begin();
- }
- void PushCoin(int64_t value) {
- // реализуйте метод добавления купюры или монеты
- ++counts_[FindCoin(value)];
- }
- void PrintCoins(ostream& out) const {
- for (int i = 0; i < counts_.size(); ++i) {
- if (counts_[i] > 0) {
- out << nominals_[i] << ": "s << counts_[i] << endl;
- }
- }
- }
- private:
- const vector<int64_t> nominals_;
- vector<int> counts_;
- };
- ostream& operator<<(ostream& out, const MoneyBox& cash) {
- cash.PrintCoins(out);
- return out;
- }
- int main() {
- MoneyBox cash({1, 500, 10000});
- cash.PushCoin(500);
- cash.PushCoin(500);
- cash.PushCoin(10000);
- std::cout << cash.FindCoin(10000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement