#include #include #include #include using namespace std; bool used[70001]; string sentence; string words[70001]; int wordFrec[70001][100]; int currentFrec[100]; int n; bool cmpFrec(int x) { for(int i = 0; i <= 99 ;i++) { if(wordFrec[x][i] != currentFrec[i]) return false; if(i == 'Z'-'A') i = 'z'-'A'-1; } return true; } void searchSolution() { for(int i=1;i<=n;i++) if(!used[i] && 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; }