//~ #pragma GCC optimize("O3,unroll-loops")
//~ #pragma GCC target("avx,avx2,fma")
#include <bits/stdc++.h>
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define fi first
#define se second
#define pb push_back
#define endl "\n"
//~ #define int long long
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
typedef tuple<int, int, int> iii;
const int inf = INT_MAX;
const int mod = 1e9+7;
int n, ans;
string s[20005];
map<string, int> mp;
map<string, bool> vis;
int32_t main(){
fast;
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i];
}
//~ sort(s+1, s+n+1, cmp());
for(int i=1;i<=n;i++){
vis.clear();
for(int j=0;j<(int)s[i].size();j++){
string temp = "";
for(int k=j;k<(int)s[i].size();k++){
temp+=s[i][k];
if(vis[temp])continue;
else vis[temp]=true;
mp[temp]++;
}
}
}
for(int i=1;i<=n;i++){
ans+=mp[s[i]]-1;
}
cout<<ans<<endl;
}
//https://usaco.org/current/current/index.php?page=viewproblem2&cpid=282 bunu coz
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |