#include <iostream>
using namespace std;
 
 
class Sparschwein{
 
    int inhalt;
    int muenzen[3] {0, 0, 0};

    public:
        Sparschwein();
        Sparschwein(int coin);
        Sparschwein(int firstCoin, int secondCoin, int thirdCoin);
        void print();
        void einwerfen(int firstCoin, int secondCoind, int thirdCoin);
        void leeren();
        
    private:
    	void einwerfen(int coin);
 
};

Sparschwein::Sparschwein()
{
	this->inhalt = 0;
}

Sparschwein::Sparschwein(int coin)
{
	this->einwerfen(coin);
}

Sparschwein::Sparschwein(int firstCoin, int secondCoin, int thirdCoin)
{
	this->einwerfen(firstCoin, secondCoin, thirdCoin);
}

void Sparschwein::print()
{
	cout << this->muenzen[0] << "x 1 cent +" << this->muenzen[1] << "x 5 cent + " << this->muenzen[2] << "x 10 cent = " << this->inhalt << " cent" << endl; 
}

void Sparschwein::einwerfen(int firstCoin, int secondCoin, int thirdCoin) {
    this->einwerfen(firstCoin);
    this->einwerfen(secondCoin);
    this->einwerfen(thirdCoin);
}

void Sparschwein::einwerfen(int coin)
{
	if(coin != 1 && coin != 5 && coin != 10)
		throw std::range_error("Münzwert ist ungültig.");
		
	this->inhalt += coin;
	if(coin == 1)
		this->muenzen[0] += 1;
	else if(coin == 5)
		this->muenzen[1] += 1;
	else if(coin == 10)
		this->muenzen[2] += 1;
}
 
void Sparschwein::leeren() {
    this->inhalt = 0;
    this->muenzen[0] = 0;
    this->muenzen[1] = 0;
    this->muenzen[2] = 0;
}

 
int main () {
 
    Sparschwein a;
    a.print();
 
    Sparschwein b = 10;
    b.print();
 
    Sparschwein c(47, 11, 42);
    c.print();
 
    Sparschwein d;
    d.einwerfen(0, 8, 15);
    d.print();
 
    d.leeren();
    d.print();
 
 
return 0;
}

