#include <iostream>
#include <vector>
#include <map>

using namespace std;

void moho_cimletezes(int osszeg)
{
    vector<int> cimletek={1,2,5,10,20,50,100,500,1000};
    map<int,int> cimlet_db;

    for(auto elem:cimletek)
    {
        cimlet_db[elem]=0;
    }

    vector<int> felhasznalt_cimletek;

    int i=cimletek.size()-1;
    while(i>=0)
    {
        while(osszeg>=cimletek[i])
        {
            osszeg=osszeg-cimletek[i];
            felhasznalt_cimletek.push_back(cimletek[i]);
            cimlet_db[cimletek[i]]++;
        }
        i--;
    }
    for(auto &cimlet:felhasznalt_cimletek)
    {
        cout << cimlet << " ";
    }
    cout << endl << "------------------------------------" << endl;
    for(auto [key,value]:cimlet_db)
    {
        cout << key << ": " << value << endl;
    }

}
int main()
{
    setlocale(LC_ALL,"");
    int valtando;
    cout << "A cimletezendő összeg: ";
    cin >> valtando;
    cout << "A megadott összeg minimális cimletezése:" << endl;
    moho_cimletezes(valtando);
    return 0;

}
