#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
int main()
{
map<string, int> wordCount;
vector<string> inputWords = {"some", "test", "stuff", "test",
"stuff"}; //read from file instead
for(auto& s: inputWords)
wordCount[s]++; //wordCount itself
for(auto& entry: wordCount) //print all words and assosiated counts
cout << entry.first << " " << entry.second <<endl;
cout <<wordCount.size() <<endl; //thats number of distinct words
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWFwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgCnsKICBtYXA8c3RyaW5nLCBpbnQ+IHdvcmRDb3VudDsKCiAgdmVjdG9yPHN0cmluZz4gaW5wdXRXb3JkcyA9IHsic29tZSIsICJ0ZXN0IiwgInN0dWZmIiwgInRlc3QiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0dWZmIn07IC8vcmVhZCBmcm9tIGZpbGUgaW5zdGVhZAoKICBmb3IoYXV0byYgczogaW5wdXRXb3JkcykKICAgICAgd29yZENvdW50W3NdKys7ICAgICAgICAgICAgICAgICAgICAgIC8vd29yZENvdW50IGl0c2VsZgoKCiAgZm9yKGF1dG8mIGVudHJ5OiB3b3JkQ291bnQpICAgICAgICAgICAgICAvL3ByaW50IGFsbCB3b3JkcyBhbmQgYXNzb3NpYXRlZCBjb3VudHMKICAgIGNvdXQgPDwgZW50cnkuZmlyc3QgPDwgIiAiIDw8IGVudHJ5LnNlY29uZCA8PGVuZGw7IAoKCiAgIGNvdXQgPDx3b3JkQ291bnQuc2l6ZSgpIDw8ZW5kbDsgICAgICAvL3RoYXRzIG51bWJlciBvZiBkaXN0aW5jdCB3b3JkcyAKfQ==