QQ有一个群聊天系统。方便非常多人在一起聊天。如今有一个群聊天的历史记录,请你统计一下每一个人说了多少。
输入有非常多行。每行首先是一个人的昵称,然后一个冒号,一个空格,接着是这个人说过的话,比方: (yamadie: womenlailolba!
)。昵称仅仅包括大写和小写字母,长度不超过10。
聊天内容仅包括大写和小写字母、数字及标点符号(,./|+-=:'[]<>?
*%#!())。长度不超过100。 每组数据以“--------”结束,每组数据不超过1000行。
对于每组数据,聊天人名按字典序排序,对于每一个聊天人输出其聊天总的字符数。一个人一行。
每组数据末尾包括一行“分隔符”。
Maxx: lalala!Daidao: hehe!Moonyu: bieshuohua!--------
Daidao: 5Maxx: 7Moonyu: 11
代码例如以下:
#include<cstdio> #include<algorithm> #include<string> #include<map> #include<cstring> using namespace std; char s[500], c[500]; int main() { map<string, int > m; while (~ scanf ( "%s" , s)) { if ( strcmp (s, "--------" ) == 0) { map<string, int >::iterator it; it = m.begin(); while (it != m.end()) { printf ( "%s: %d\n" , it->first.c_str(), it->second); it++; } puts ( "--------" ); m.clear(); continue ; } s[ strlen (s) - 1] = 0; scanf ( "%s" , c); string st = s; m[st] += strlen (c); } return 0; } |