#include <bits/stdc++.h>
#define boostcode ios_base::sync_with_stdio(0); cin.tie(0);
#define openf freopen("CHIA3.inp", "r", stdin); freopen("CHIA3.out", "w", stdout);
using namespace std;
typedef long long ll;
int n; // Lưu n từ input
string ai; // Lưu các số từ dãy A từ input
int du[3]; // Lưu trữ số lượng giá trị dư của các số từ dãy A khi chia lấy dư cho 3
int temp; // Lưu trữ tổng các chữ số của ai
ll res; // Kết quả bài toán cần tìm
int main() {
boostcode;
openf;
cin >> n; // Nhập input n
// Nhập input các phần tử của dãy A và xử lí kết quả đông thời:
for (int i = 0; i < n; i++) {
cin >> ai;
for (char c:ai) temp += (c-'0');
res += du[(3-(temp%3))%3];
du[temp%3]++;
temp = 0;
}
cout << res; // In output
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgYm9vc3Rjb2RlIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7CiNkZWZpbmUgb3BlbmYgZnJlb3BlbigiQ0hJQTMuaW5wIiwgInIiLCBzdGRpbik7IGZyZW9wZW4oIkNISUEzLm91dCIsICJ3Iiwgc3Rkb3V0KTsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCmludCBuOyAvLyBMxrB1IG4gdOG7qyBpbnB1dApzdHJpbmcgYWk7IC8vIEzGsHUgY8OhYyBz4buRIHThu6sgZMOjeSBBIHThu6sgaW5wdXQKaW50IGR1WzNdOyAvLyBMxrB1IHRy4buvIHPhu5EgbMaw4bujbmcgZ2nDoSB0cuG7iyBkxrAgY+G7p2EgY8OhYyBz4buRIHThu6sgZMOjeSBBIGtoaSBjaGlhIGzhuqV5IGTGsCBjaG8gMwppbnQgdGVtcDsgLy8gTMawdSB0cuG7ryB04buVbmcgY8OhYyBjaOG7ryBz4buRIGPhu6dhIGFpCmxsIHJlczsgLy8gS+G6v3QgcXXhuqMgYsOgaSB0b8OhbiBj4bqnbiB0w6xtCgppbnQgbWFpbigpIHsKICAgIGJvb3N0Y29kZTsKICAgIG9wZW5mOwoKICAgIGNpbiA+PiBuOyAvLyBOaOG6rXAgaW5wdXQgbgogICAgLy8gTmjhuq1wIGlucHV0IGPDoWMgcGjhuqduIHThu60gY+G7p2EgZMOjeSBBIHbDoCB44butIGzDrSBr4bq/dCBxdeG6oyDEkcO0bmcgdGjhu51pOgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gYWk7CiAgICAgICAgZm9yIChjaGFyIGM6YWkpIHRlbXAgKz0gKGMtJzAnKTsKICAgICAgICByZXMgKz0gZHVbKDMtKHRlbXAlMykpJTNdOwogICAgICAgIGR1W3RlbXAlM10rKzsKICAgICAgICB0ZW1wID0gMDsKICAgIH0KICAgIGNvdXQgPDwgcmVzOyAvLyBJbiBvdXRwdXQKCiAgICByZXR1cm4gMDsKfQ==