#include <string>
#include <map>
#include <sstream>
#include <algorithm>
#include <iterator>
using namespace std;
string toString(long value)
{
ostringstream oss;
oss << value;
return oss.str();
}
long hash(const string& key)
{
return 0;
}
string generateKey()
{
static long value = 0;
++value;
return toString(value);
}
pair<string, long> generateKeyValuePair()
{
string key = generateKey();
return make_pair(key, hash(key));
}
int main()
{
map<string, long> hashes;
generate_n(inserter(hashes, hashes.begin()), 5, generateKeyValuePair);
return 0;
}
ICAgICNpbmNsdWRlIDxzdHJpbmc+CiAgICAjaW5jbHVkZSA8bWFwPgogICAgI2luY2x1ZGUgPHNzdHJlYW0+CiAgICAjaW5jbHVkZSA8YWxnb3JpdGhtPgogICAgI2luY2x1ZGUgPGl0ZXJhdG9yPgoKICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CgogICAgc3RyaW5nIHRvU3RyaW5nKGxvbmcgdmFsdWUpCiAgICB7CiAgICAgICAgb3N0cmluZ3N0cmVhbSBvc3M7CiAgICAgICAgb3NzIDw8IHZhbHVlOwogICAgICAgIHJldHVybiBvc3Muc3RyKCk7CiAgICB9CgogICAgbG9uZyBoYXNoKGNvbnN0IHN0cmluZyYga2V5KQogICAgewogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIHN0cmluZyBnZW5lcmF0ZUtleSgpCiAgICB7CiAgICAgICAgc3RhdGljIGxvbmcgdmFsdWUgPSAwOwogICAgICAgICsrdmFsdWU7CiAgICAgICAgcmV0dXJuIHRvU3RyaW5nKHZhbHVlKTsKICAgIH0KCiAgICBwYWlyPHN0cmluZywgbG9uZz4gZ2VuZXJhdGVLZXlWYWx1ZVBhaXIoKQogICAgewogICAgICAgIHN0cmluZyBrZXkgPSBnZW5lcmF0ZUtleSgpOwogICAgICAgIHJldHVybiBtYWtlX3BhaXIoa2V5LCBoYXNoKGtleSkpOwogICAgfQoKICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICBtYXA8c3RyaW5nLCBsb25nPiBoYXNoZXM7CgogICAgICAgIGdlbmVyYXRlX24oaW5zZXJ0ZXIoaGFzaGVzLCBoYXNoZXMuYmVnaW4oKSksIDUsIGdlbmVyYXRlS2V5VmFsdWVQYWlyKTsKICAgICAgICAKICAgICAgICByZXR1cm4gMDsKICAgIH0=