#include <iostream>
#include <string>
using namespace std;

/**
  Calcul et affichage de la coupure
  @param[in] somme - somme à décomposer
  @param[in] valeur - valeur de la coupure
  @param[out] nc - nombre de coupures
  @param[out] rt - reste
  @param[in] typec - type de la coupure
*/

void calcAfficher(int somme, int valeur, int& nc, int& rt, char typec)
{
  nc = somme / valeur;
  rt = somme % valeur;
  string intitule = (typec == 'b' ? "billet" : "piece");
  if (nc != 0)
  {
    cout<<"==> "<<nc<<" "<<intitule<<"(s) de "<<valeur<<" euros, reste "<<rt<<endl;
  }
}

int main()
{
  int somme;
  cout<<"Somme a decomposer? ";
  cin>>somme;
  
  int b100, r100;
  calcAfficher(somme,100,b100,r100,'b');
  
  int b50, r50;
  calcAfficher(r100,50,b50,r50,'b');
  
  int b10, r10;
  calcAfficher(r50,10,b10,r10,'b');
  
  int p2, r2;
  calcAfficher(r10,2,p2,r2,'p');
  
  int p1, r1;
  calcAfficher(r2,1,p1,r1,'p');
  
  int rs = 100 * b100 + 50 * b50 + 10 * b10 + 2 * p2 + 1 * p1;
  cout<<"==> "<<rs<<endl;
}
