#include #include #include using std::cin; using std::cout; const char endl = '\n'; const int N = 2e6 + 5; int n; long long ans; std::string s[N]; std::unordered_map map; int main() { std::ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; for (int i = 1, _; i <= n; i++) { cin >> _ >> s[i]; map[s[i]]++; } for (int i = 1; i <= n; i++) { std::string str, str1(s[i]); str.reserve(s[i].size()); str1.reserve(s[i].size() << 1); for (char c : s[i]) { str.push_back(c); str1.push_back(c); if (map.count(str) && str1 == str + s[i]) { ans += static_cast(map[str]) * 2; } } } cout << ans - n << endl; return 0; }