#include <bits/stdc++.h>
using namespace std;
const int N = 500005;
int n,sum;
string p;
int cnt[1000005],ind;
char t[1000005][30];
unordered_map<string,int > m;
void insert(string s){
int p = 0;
for(int i = 0; s[i]; i++){
int x = s[i]-'a';
if(!t[p][x]) t[p][x] = ++ind;
p = t[p][x];
}
cnt[p]++;
}
void dfs(){
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for(int i = 1; i <= n; i++){
cin >> p;
int size = p.size();
string x = ""+p[0];
m[x]++;
for(int j = 1; j <= size; j++){
x = x + p[i];
m[x]++;
}
sum += size;
reverse(p.begin(),p.end());
insert(p);
}
unordered_map<string,int >::iterator i;
for(i = m.begin(); i != m.end(); i++){
cout << i->first << endl;
}
/*for(auto &[k , v] : m){
cout << k << " " << v << endl;
}*/
cout << sum << endl;
return 0;
}
发现是遍历的问题,但是单独放出来又没有问题
希望不是我sb