Submission details
Task:Illuminati
Sender:discape
Submission time:2025-10-27 18:05:02 +0200
Language:C++ (C++20)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails
#17ACCEPTED0.00 sdetails
#18ACCEPTED0.00 sdetails
#19ACCEPTED0.00 sdetails
#20ACCEPTED0.00 sdetails
#21ACCEPTED0.00 sdetails
#22ACCEPTED0.00 sdetails
#23ACCEPTED0.00 sdetails
#24ACCEPTED0.00 sdetails
#25ACCEPTED0.00 sdetails
#26ACCEPTED0.00 sdetails
#27ACCEPTED0.00 sdetails
#28ACCEPTED0.00 sdetails
#29ACCEPTED0.00 sdetails
#30ACCEPTED0.00 sdetails
#31ACCEPTED0.00 sdetails
#32ACCEPTED0.00 sdetails
#33ACCEPTED0.00 sdetails
#34ACCEPTED0.00 sdetails
#35ACCEPTED0.00 sdetails
#36ACCEPTED0.00 sdetails
#37ACCEPTED0.00 sdetails
#38ACCEPTED0.01 sdetails
#39ACCEPTED0.01 sdetails
#40ACCEPTED0.01 sdetails
#41ACCEPTED0.01 sdetails
#42ACCEPTED0.01 sdetails
#43ACCEPTED0.01 sdetails
#44ACCEPTED0.01 sdetails
#45ACCEPTED0.01 sdetails
#46ACCEPTED0.01 sdetails
#47ACCEPTED0.01 sdetails
#48--details
#49--details
#50--details
#51--details
#52--details
#53--details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:23:40: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   23 | #define fr(i,a,b) for (size_t i = a; i < b; i++)
      |                                        ^
input/code.cpp:46:3: note: in expansion of macro 'fr'
   46 |   fr(i, 0, n) {
      |   ^~
input/code.cpp:23:40: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   23 | #define fr(i,a,b) for (size_t i = a; i < b; i++)
      |                                        ^
input/code.cpp:47:5: note: in expansion of macro 'fr'
   47 |     fr(j, 0, n) {
      |     ^~
input/code.cpp:23:40: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   23 | #define fr(i,a,b) for (size_t i =...

Code

// clang-format off
#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
#ifdef DO_DBG
template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; }
template<typename T_container, typename T = typename enable_if<!is_same<T_container, string>::value, typename T_container::value_type>::type> ostream& operator<<(ostream &os, const T_container &v) { os << '{'; string sep; for (const T &x : v) os << sep << x, sep = ", "; return os << '}'; }
void dbg_out() { cerr << endl; }
template<typename Head, typename... Tail> void dbg_out(Head H, Tail... T) { cerr << ' ' << H; dbg_out(T...); }
#define dbg(...) cerr << "(" << #__VA_ARGS__ << "):", dbg_out(__VA_ARGS__)
#define dout cerr
#define debug true
#else
#define dbg(...)
#define dout if (0) cerr
#define debug false
#endif
typedef long long ll; typedef unsigned long long ull; typedef long double ld;
template <typename T> using v = vector<T>; template <typename T> using us = unordered_set<T>; template <typename K, typename V> using p = pair<K,V>;
template <typename K, typename V> using um = unordered_map<K, V>; template <typename K, typename V> using p = pair<K, V>;
template <typename T> using pq = priority_queue<T>; template <typename T> using nl = numeric_limits<T>; template <typename T> using il = initializer_list<T>;
constexpr int MOD = 1e9 + 7; constexpr int INF = 1e9; constexpr ld EPS = 1e-9;
#define fr(i,a,b) for (size_t i = a; i < b; i++)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin.exceptions(cin.failbit);
#define frr(i,a,b) for (size_t i = b-1; i >= a; i--)
#define frs(i,a,b) for (ll i = a; i < b; i++)
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define sq(x) ((x) * (x))
template <typename... Args> void read(Args&... args) { ((cin >> args), ...); }
#define d(...) int __VA_ARGS__; read(__VA_ARGS__);
#define dll(...) ll __VA_ARGS__; read(__VA_ARGS__);
#define dv(x, n) vector<int> x(n); for (int i = 0; i < n; i++) cin >> x[i];
#define dvll(x, n) vector<long long> x(n); for (int i = 0; i < n; i++) cin >> x[i];
#define dvd(x, n) vector<double> x(n); for (int i = 0; i < n; i++) cin >> x[i];
ll ipow(ll a,int b){ll r=1;for(;b;b>>=1,a*=a)if(b&1)r*=a;return r;}
template<class F>struct y_combinator{F f;template<class...Args>decltype(auto)operator()(Args&&...args)const{return f(*this,forward<Args>(args)...);}};
constexpr auto get_nums=[]<typename T>(T&&s){istringstream iss(forward<T>(s));return vector<int>{istream_iterator<int>{iss},{}};};
// clang-format on

int main() {
  // fastio;
  dll(n);
  v<string> a{istream_iterator<string>{cin}, {}};
  v<us<ll>> adj(n);
  fr(i, 0, n) {
    fr(j, 0, n) {
      if (a[i][j] == '1') {
        adj[i].insert(j);
      }
    }
  }
  ll count = 0;
  fr(i, 0, n) {
    fr(j, 0, n) {
      if (a[i][j] != '1')
        continue;
      fr(k, 0, n) {
        if (adj[i].contains(k) && adj[j].contains(k)) {
          // cout << i << ' ' << j << ' ' << k << '\n';
          count++;
        }
      }
      adj[i].erase(j);
      adj[j].erase(i);
      a[i][j] = 0;
      a[j][i] = 0;
    }
  }
  cout << count << '\n';
}

Test details

Test 1

Verdict: ACCEPTED

input
1
0

correct output
0

user output
0

Test 2

Verdict: ACCEPTED

input
2
01
10

correct output
0

user output
0

Test 3

Verdict: ACCEPTED

input
2
01
10

correct output
0

user output
0

Test 4

Verdict: ACCEPTED

input
3
011
101
110

correct output
1

user output
1

Test 5

Verdict: ACCEPTED

input
3
010
101
010

correct output
0

user output
0

Test 6

Verdict: ACCEPTED

input
3
000
001
010

correct output
0

user output
0

Test 7

Verdict: ACCEPTED

input
3
011
100
100

correct output
0

user output
0

Test 8

Verdict: ACCEPTED

input
4
0111
1011
1101
1110

correct output
4

user output
4

Test 9

Verdict: ACCEPTED

input
4
0011
0010
1100
1000

correct output
0

user output
0

Test 10

Verdict: ACCEPTED

input
4
0000
0011
0101
0110

correct output
1

user output
1

Test 11

Verdict: ACCEPTED

input
4
0101
1010
0100
1000

correct output
0

user output
0

Test 12

Verdict: ACCEPTED

input
4
0111
1001
1001
1110

correct output
2

user output
2

Test 13

Verdict: ACCEPTED

input
4
0001
0010
0100
1000

correct output
0

user output
0

Test 14

Verdict: ACCEPTED

input
4
0110
1001
1000
0100

correct output
0

user output
0

Test 15

Verdict: ACCEPTED

input
4
0001
0000
0001
1010

correct output
0

user output
0

Test 16

Verdict: ACCEPTED

input
4
0101
1001
0000
1100

correct output
1

user output
1

Test 17

Verdict: ACCEPTED

input
4
0001
0000
0000
1000

correct output
0

user output
0

Test 18

Verdict: ACCEPTED

input
5
01111
10111
11010
11101
...

correct output
7

user output
7

Test 19

Verdict: ACCEPTED

input
5
00111
00000
10010
10100
...

correct output
1

user output
1

Test 20

Verdict: ACCEPTED

input
5
00001
00110
01000
01000
...

correct output
0

user output
0

Test 21

Verdict: ACCEPTED

input
5
01011
10001
00011
10100
...

correct output
1

user output
1

Test 22

Verdict: ACCEPTED

input
5
01110
10111
11011
11101
...

correct output
7

user output
7

Test 23

Verdict: ACCEPTED

input
5
00011
00001
00010
10100
...

correct output
0

user output
0

Test 24

Verdict: ACCEPTED

input
5
01100
10100
11000
00001
...

correct output
1

user output
1

Test 25

Verdict: ACCEPTED

input
5
00010
00011
00001
11000
...

correct output
0

user output
0

Test 26

Verdict: ACCEPTED

input
5
01010
10101
01010
10100
...

correct output
0

user output
0

Test 27

Verdict: ACCEPTED

input
5
00010
00000
00000
10000
...

correct output
0

user output
0

Test 28

Verdict: ACCEPTED

input
10
0111111110
1011000101
1100001110
1100101100
...

correct output
26

user output
26

Test 29

Verdict: ACCEPTED

input
10
0011100010
0000000010
1001110011
1010001001
...

correct output
11

user output
11

Test 30

Verdict: ACCEPTED

input
10
0000111000
0000001100
0000011111
0000001101
...

correct output
7

user output
7

Test 31

Verdict: ACCEPTED

input
10
0101100111
1001000000
0000010000
1100100010
...

correct output
9

user output
9

Test 32

Verdict: ACCEPTED

input
10
0111011111
1010010010
1101011001
1010101100
...

correct output
22

user output
22

Test 33

Verdict: ACCEPTED

input
10
0001100110
0001010100
0001010111
1110000110
...

correct output
11

user output
11

Test 34

Verdict: ACCEPTED

input
10
0110010000
1011011010
1100110110
0100101011
...

correct output
22

user output
22

Test 35

Verdict: ACCEPTED

input
10
0001001101
0001010000
0000011110
1100000101
...

correct output
13

user output
13

Test 36

Verdict: ACCEPTED

input
10
0101010110
1000101001
0001011011
1010101110
...

correct output
8

user output
8

Test 37

Verdict: ACCEPTED

input
10
0001000000
0000100000
0000000010
1000110111
...

correct output
19

user output
19

Test 38

Verdict: ACCEPTED

input
100
011111111011000101000111010110...

correct output
20807

user output
20807

Test 39

Verdict: ACCEPTED

input
100
001110001000000010111001100100...

correct output
21100

user output
21100

Test 40

Verdict: ACCEPTED

input
100
000011100000001100001111100110...

correct output
18556

user output
18556

Test 41

Verdict: ACCEPTED

input
100
010110011101000000001000010001...

correct output
20091

user output
20091

Test 42

Verdict: ACCEPTED

input
100
011101111110010010101100110110...

correct output
21281

user output
21281

Test 43

Verdict: ACCEPTED

input
100
000110011001010100101011100011...

correct output
20746

user output
20746

Test 44

Verdict: ACCEPTED

input
100
011001000011011010011011010101...

correct output
21793

user output
21793

Test 45

Verdict: ACCEPTED

input
100
000100110101010000001111000010...

correct output
19781

user output
19781

Test 46

Verdict: ACCEPTED

input
100
010101011000101001101101110111...

correct output
20006

user output
20006

Test 47

Verdict: ACCEPTED

input
100
000100000000100000000001011011...

correct output
19161

user output
19161

Test 48

Verdict:

input
1000
011111111011000101000111010110...

correct output
20823418

user output
(empty)

Test 49

Verdict:

input
1000
001110001000000010111001100100...

correct output
20848491

user output
(empty)

Test 50

Verdict:

input
2000
010001011010001100000111100111...

correct output
166808034

user output
(empty)

Test 51

Verdict:

input
2000
000010011000001011011110111110...

correct output
165842024

user output
(empty)

Test 52

Verdict:

input
2999
000110011001010001100011110110...

correct output
561389670

user output
(empty)

Test 53

Verdict:

input
3000
011111111111111111111111111111...

correct output
4495501000

user output
(empty)