#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 3e3 + 5;
const int B = 63;
const int K = 48;
int n;
ll mask[N][K];
int nC2(int n) {
if (n < 2) return 0;
return n * (n - 1) / 2;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n;
for (int x = 0; x < n; x++) {
string s; cin >> s;
for (int y = 0; y < n; y++) {
int bit_idx = y % B;
mask[x][y / B] |= (1ll << bit_idx) * (s[y] - '0');
}
}
// Giả sử x1, x2 (x1 < x2) là 2 hàng rìa của bảng cần đếm
ll ans = 0;
for (int x1 = 0; x1 + 1 < n; x1++) {
for (int x2 = x1 + 1; x2 < n; x2++) {
int cnt = 0; // Số vị trí cùng bằng 1 của 2 hàng x1, x2
for (int cid = 0; cid < K; cid++) {
cnt += __builtin_popcountll(mask[x1][cid] & mask[x2][cid]);
}
ans += nC2(cnt);
}
}
cout << ans << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAzZTMgKyA1OyAKY29uc3QgaW50IEIgPSA2MzsgICAgCmNvbnN0IGludCBLID0gNDg7ICAgIAoKaW50IG47ICAKbGwgbWFza1tOXVtLXTsgCgppbnQgbkMyKGludCBuKSB7CglpZiAobiA8IDIpIHJldHVybiAwOyAgCglyZXR1cm4gbiAqIChuIC0gMSkgLyAyOyAKfQoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAoJY2luLnRpZShudWxscHRyKTsgCQoJY2luID4+IG47IAoJZm9yIChpbnQgeCA9IDA7IHggPCBuOyB4KyspIHsKCQlzdHJpbmcgczsgY2luID4+IHM7IAoJCWZvciAoaW50IHkgPSAwOyB5IDwgbjsgeSsrKSB7CgkJCWludCBiaXRfaWR4ID0geSAlIEI7ICAKCQkJbWFza1t4XVt5IC8gQl0gfD0gKDFsbCA8PCBiaXRfaWR4KSAqIChzW3ldIC0gJzAnKTsgIAoJCX0gCgl9CgoJLy8gR2nhuqMgc+G7rSB4MSwgeDIgKHgxIDwgeDIpIGzDoCAyIGjDoG5nIHLDrGEgY+G7p2EgYuG6o25nIGPhuqduIMSR4bq/bQoJbGwgYW5zID0gMDsgCglmb3IgKGludCB4MSA9IDA7IHgxICsgMSA8IG47IHgxKyspIHsKCQlmb3IgKGludCB4MiA9IHgxICsgMTsgeDIgPCBuOyB4MisrKSB7CgkJCWludCBjbnQgPSAwOyAgLy8gU+G7kSB24buLIHRyw60gY8O5bmcgYuG6sW5nIDEgY+G7p2EgMiBow6BuZyB4MSwgeDIKCQkJZm9yIChpbnQgY2lkID0gMDsgY2lkIDwgSzsgY2lkKyspIHsKCQkJCWNudCArPSBfX2J1aWx0aW5fcG9wY291bnRsbChtYXNrW3gxXVtjaWRdICYgbWFza1t4Ml1bY2lkXSk7IAoJCQl9CgkJCWFucyArPSBuQzIoY250KTsgIAoJCX0KCX0KCgljb3V0IDw8IGFucyA8PCAnXG4nOwp9