import java.util.HashSet;
import java.util.Set;
class Solution {
public long distinctNames(String[] ideas) {
int[][] cnt = new int[26][26];
boolean[][] flag = new boolean[ideas.length][26];
Set<String> set = new HashSet<>();
for (String idea : ideas) {
set.add(idea);
}
for (int i = 0; i < ideas.length; i++) {
int first = ideas[i].charAt(0) - 'a';
String substr = ideas[i].substring(1);
for (int j = 0; j < 26; j++) {
String str = (char) (j + 'a') + substr;
if (!set.contains(str)) {
flag[i][j] = true;
cnt[first][j]++;
}
}
}
long ans = 0;
for (int i = 0; i < ideas.length; i++) {
for (int j = 0; j < 26; j++) {
if( flag[i][j]){
int first = ideas[i].charAt(0)-'a';
ans += cnt[j][first];
}
}
}
return ans;
}
}