
//
// To jest przykładowy kod z podrozdziału 21.6.1 „Słowniki” książki
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

#include <iostream>
#include <map>
#include <string>

using namespace std;

//------------------------------------------------------------------------------

int main()
{
    map<string,int> words;    // Przechowuje pary (klucz,wartość).

    string s;
    while (cin>>s) ++words[s];       // Uwaga: słownik words jest indkesowany łańcuchem.

    typedef map<string,int>::const_iterator Iter;
    for (Iter  p = words.begin(); p!=words.end(); ++p)
        cout << p->first << ": " << p->second << '\n';
}

//------------------------------------------------------------------------------
