#include #include #include #include using lint = long long; void solve() { int n; std::cin >> n; std::vector ss(n); for (auto& s : ss) { std::cin >> s; s.push_back('$'); } lint ans = 0; std::function dfs = [&](int l, int r, int d) -> void { while (l < r && ss[l][d] == '$') ++l; if (l == r) return; int i = l; while (i < r && ss[i][d] == ss[l][d]) ++i; lint len = i - l; ans += len * (len + 1) * (len + 2) / 6; dfs(l, i, d + 1); dfs(i, r, d); }; dfs(0, n, 0); std::cout << ans << "\n"; } int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); solve(); return 0; }