//(c)Terminator
#include <iostream>
#include <cctype>
#include <cstring>
#include <string>
#include <map>
using namespace std;
struct scmp {
bool operator () (const string& a, const string& b) const {
return (strcmp(a.c_str(), b.c_str()) < 0);
}
};
typedef map<string, int, scmp> words;
int maxrepeat_word(const char* s, string& d){
words::iterator pw;
const char* p;
string w;
words ws;
int n = 0;
for(d = ""; *s; s = p) {
while(*s && ! isalpha(*s))
++s;
if(! *s)
break;
for(p = s; isalpha(*p); )
++p;
w.assign(s, p);
if((pw = ws.find(w)) != ws.end()){
if(++(pw->second) > n){
d = w;
n = pw->second;
}
} else
ws.insert(make_pair(w, 1));
}
ws.clear();
return n;
}
int main(void){
char s[] = "dog, fox, [dog], fox, wolf-dog, cat, dog";
string d;
int n = maxrepeat_word(s, d);
cout << "word: " << d << endl;
cout << "count: " << n << endl;
return 0;
}
Ly8oYylUZXJtaW5hdG9yCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGNjdHlwZT4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxtYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3Qgc2NtcCB7Cglib29sIG9wZXJhdG9yICgpIChjb25zdCBzdHJpbmcmIGEsIGNvbnN0IHN0cmluZyYgYikgY29uc3QgewoJCXJldHVybiAoc3RyY21wKGEuY19zdHIoKSwgYi5jX3N0cigpKSA8IDApOwoJfQp9OwoKdHlwZWRlZiBtYXA8c3RyaW5nLCBpbnQsIHNjbXA+IHdvcmRzOwoKCmludCBtYXhyZXBlYXRfd29yZChjb25zdCBjaGFyKiBzLCBzdHJpbmcmIGQpewoJd29yZHM6Oml0ZXJhdG9yIHB3OwoJY29uc3QgY2hhciogcDsKCXN0cmluZyAgdzsKCXdvcmRzICB3czsKCWludCBuID0gMDsKCglmb3IoZCA9ICIiOyAqczsgcyA9IHApIHsKCgkJd2hpbGUoKnMgJiYgISBpc2FscGhhKCpzKSkKCQkJKytzOwoJCWlmKCEgKnMpCgkJCWJyZWFrOwoJCWZvcihwID0gczsgaXNhbHBoYSgqcCk7ICkKCQkJKytwOwoKCQl3LmFzc2lnbihzLCBwKTsKCQlpZigocHcgPSB3cy5maW5kKHcpKSAhPSB3cy5lbmQoKSl7CgkJCWlmKCsrKHB3LT5zZWNvbmQpID4gbil7CgkJCQlkID0gdzsKCQkJCW4gPSBwdy0+c2Vjb25kOwoJCQl9CgkJfSBlbHNlCgkJCXdzLmluc2VydChtYWtlX3BhaXIodywgMSkpOwoJfQoKCXdzLmNsZWFyKCk7CglyZXR1cm4gbjsKfQoKCgppbnQgbWFpbih2b2lkKXsKCWNoYXIgc1tdID0gImRvZywgZm94LCBbZG9nXSwgZm94LCB3b2xmLWRvZywgY2F0LCBkb2ciOwoKCXN0cmluZyBkOwoJaW50ICAgIG4gPSBtYXhyZXBlYXRfd29yZChzLCBkKTsKCWNvdXQgPDwgIndvcmQ6ICAiIDw8IGQgPDwgZW5kbDsKCWNvdXQgPDwgImNvdW50OiAiIDw8IG4gPDwgZW5kbDsKCXJldHVybiAwOwp9