You are to find all the two-word compound words in a dictionary. A two-word compound word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary.
Standard input consists of a number of lowercase words, one per line, in alphabetical order. There will be no more than 120,000 words.
Your output should contain all the compound words, one per line, in alphabetical order.
a alien born less lien never nevertheless new newborn the zebra
alien newborn
題意:給出一系列單詞,找出由其中兩個單詞復合組成的單詞。直接排序然後二分查找了。
#include#include #include using namespace std; int k; string st[120005]; bool cmp(string x,string y) { return x str) { right=mid-1; } else return 1; } return 0; } int main() { string str; int i,j; k=0; while(getline(cin,str)) { st[k++]=str; } sort(st,st+k,cmp); //cout<