#include<iostream>
#include<cstdio>#include<map>#include<string>using namespace std;int main(void)
{ string t,str; map<string,int> mymap; map<string,int>::iterator iter,p; int i,j; while(cin>>t) { mymap.clear(); for(i=0;i<t.size();i++) { for(j=i;j<t.size();j++) { str = t.substr(i,j-i+1); //mymap[str]++; 这个方法也是可以的,下边操作同样可以向map中插入数据,就不需要使用下面的insert了(下面23--29行的代码可以省略了) p = mymap.find(str); if(p!=mymap.end()) { p->second++; } else mymap.insert(make_pair(str, 1));}
} for(iter=mymap.begin();iter!=mymap.end();iter++) { if(iter->second>1) cout<<iter->first<<" "<<iter->second<<endl; } } return 0;}