| 12345678910111213141516171819202122232425 |
- #include <bitset>
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- int main() {
- ios::sync_with_stdio(false);
- cin.tie(nullptr);
- int n; cin >> n;
- constexpr int max_n = 3000;
- vector<bitset<max_n>> neighbor(n);
- vector<string> matrix(n);
- for (int i = 0; i < n; ++i) {
- cin >> matrix[i];
- for (int j = 0; j < n; ++j) if (matrix[i][j] == '1') neighbor[i].set(j);
- }
- long long sum = 0;
- for (int i = 0; i < n; ++i) {
- for (int j = i + 1; j < n; ++j) if (matrix[i][j] == '1') {
- sum += static_cast<long long>((neighbor[i] & neighbor[j]).count());
- }
- }
- cout << sum / 3 << '\n';
- }
|