#include <bits/stdc++.h>
using namespace std;
const int MAXN = 3e5 + 10;
long long m;
long long ans;
char str[MAXN];
map<long long, long long>::iterator it;
int main() {
  long long T;
  scanf("%lld", &T);
  map<long long, long long> mp;
  mp.size();
  while (T--) {
    stack<char> s;
    scanf(" %s", &str);
    long long len = strlen(str);
    for (long long i = 0; i < len; i++) {
      if (!s.empty()) {
        if (s.top() == '(' && str[i] == ')') {
          s.pop();
        } else
          s.push(str[i]);
      } else {
        s.push(str[i]);
      }
    }
    if (s.empty()) {
      m++;
    } else {
      long long cpp = s.size(), flag = 0;
      while (!s.empty()) {
        if (s.top() == '(') flag++;
        s.pop();
      }
      if (flag == 0)
        mp[-cpp]++;
      else if (flag == cpp) {
        mp[cpp]++;
      }
    }
  }
  for (it = mp.begin(); it != mp.end(); it++) {
    long long k = it->first;
    if (mp.count(-k)) {
      ans += (long long)(it->second * mp[-k]);
    }
  }
  printf("%lld\n", ans / 2 + m * m);
}
