#include #include #include #include using namespace std; string sentence; string words[70001]; int wordFrec[70001][30]; int currentFrec[30]; int n; bool cmpFrec(int x) { for(int i = 0;i <= 'z'-'a' ;i++) if(wordFrec[x][i] != currentFrec[i]) return false; return true; } void searchSolution() { for(int i=1;i<=n;i++) if(cmpFrec(i)) cout<>sentence; cin>>n; for(int i = 1; i <= n; i++) cin>>words[i]; sort(words+1, words + 1 + n); for(int i = 1; i <= n; i++) for(int j = 0; j < words[i].length(); j++) wordFrec[i][words[i][j] - 'a']++; for(int i = 0; i < sentence.length(); i ++) { memset(currentFrec,0,sizeof(currentFrec)); for(int j = 0; j + i < sentence.length(); j++) { currentFrec[sentence[i+j] - 'a'] ++; searchSolution(); } } return 0; }