func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 1e5;   int N, A[maxn];   unordered_map<int, int> cnt;   unordered_map<int, int> cnt_popped;   int main() {     bool on[26] = {};     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     cin >> N;     string S;     getline(cin, S);     for (auto j = (0); j != (N); ++j) {       getline(cin, S);       for (char ch : S) {         on[ch -  a ] = !on[ch -  a ];       }       int mask = 0;       for (auto i = (0); i != (26); ++i) {         if (on[i]) {           mask |= 1 << i;           on[i] = false;         }       }       A[j] = mask;     }     long long ret = 0;     for (auto k = (0); k != (N); ++k) {       int m = A[k];       ret += cnt[m];       ret += cnt_popped[m];       for (int i = 0, j = 1; i < 26; i++, j <<= 1) {         if (m & j) {           ret += cnt[m ^ j];           cnt_popped[m ^ j]++;         }       }       cnt[m]++;     }     cout << ret << endl;     return 0;   }   