Submission #65525469


Source Code Expand

#include <bits/stdc++.h>
#include <unordered_map>
 
#define rep(i, s, e) for(int i = s; i <= e; ++i)
#define fep(i, s, e) for(int i = s; i < e; ++i)
#define _rep(i, s, e) for(int i = s; i >= e; --i)
#define _fep(i, s, e) for(int i = s; i > e; --i)
 
#define int long long
#define pii pair<int, int>
 
namespace FastIO {
	template <typename _Tp> inline void read(_Tp &x) { int neg = 1; char ch; while(ch = getchar(), !isdigit(ch)) if(ch == '-') neg = -1; x = ch - '0'; while(ch = getchar(), isdigit(ch)) x = (x << 3) + (x << 1) + (ch ^ '0'); x *= neg; }
	template <typename _Tp, typename... _Args> inline void read(_Tp &x, _Args &...args) { read(x); read(args...); }
	template <typename _Tp> inline void read(_Tp* begin, _Tp* end) { int len = end - begin; for(int i = 0; i < len; ++i) read(*(begin + i)); }
	template <typename _Tp> inline void write(_Tp x) { if(x < 0) putchar('-'), x= -x; if(x > 9) write(x / 10); putchar(x % 10 + '0'); }
	template <typename _Tp, typename... _Args> inline void write(_Tp x, _Args ...args) { write(x); putchar(' '); write(args...); }
	template <typename _Tp> inline void write(_Tp* begin, _Tp* end) { int len = end - begin; for(int i = 0; i < len; ++i) write(*(begin + i)), putchar(' '); }
}
 
using namespace std;
using namespace FastIO;
 
const int inf = numeric_limits<int>::max();
const int ninf = numeric_limits<int>::min();
const int mod = 998244353;
const double eps = 0.000001;

int n, a, ans, cnt, vis[405], fac[405]; 
bitset<405> b[405]; 

void solve() {
	read(n), ans = 1;
	rep(i, 1, n) vis[i] = 0, b[i].reset();
	rep(i, 1, n) rep(j, 1, n) read(a), b[i][j] = a;
	rep(i, 1, n) if(!b[i][1] or !b[1][i]) return puts("0"), void();
	rep(i, 2, n) rep(j, 2, n) {
		if(((b[i] | b[j]) == b[i]) or ((b[i] | b[j]) == b[j])) {
			if(not b[i][j]) return puts("0"), void();
		}
		else {
			if(b[i][j]) return puts("0"), void();
		}
	}
	rep(i, 2, n) if(!vis[i]) {
		cnt = 1;
		rep(j, i + 1, n) if(b[i] == b[j]) ++cnt, vis[j] = 1;
		ans = ans * fac[cnt] % mod;
	}
	write(ans);
	putchar('\n');
	return;
}

signed main() {
	fac[0] = 1;
	rep(i, 1, 400) fac[i] = fac[i - 1] * i % mod;
	int T = 1; read(T);
	while(T--) solve();
	return 0;
}

Submission Info

Submission Time
Task D - Ancestor Relation
User Getaway_Car
Language C++ 20 (gcc 12.2)
Score 700
Code Size 2223 Byte
Status AC
Exec Time 4 ms
Memory 3704 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 1
AC × 94
Set Name Test Cases
Sample 01_sample_01.txt
All 01_sample_01.txt, 02_small_01.txt, 02_small_02.txt, 02_small_03.txt, 03_mid_1_01.txt, 03_mid_1_02.txt, 03_mid_1_03.txt, 03_mid_1_04.txt, 03_mid_1_05.txt, 03_mid_1_06.txt, 03_mid_1_07.txt, 03_mid_1_08.txt, 03_mid_1_09.txt, 03_mid_1_10.txt, 03_mid_1_11.txt, 03_mid_1_12.txt, 03_mid_1_13.txt, 03_mid_1_14.txt, 03_mid_1_15.txt, 04_mid_2_01.txt, 04_mid_2_02.txt, 04_mid_2_03.txt, 04_mid_2_04.txt, 04_mid_2_05.txt, 04_mid_2_06.txt, 04_mid_2_07.txt, 04_mid_2_08.txt, 04_mid_2_09.txt, 04_mid_2_10.txt, 04_mid_2_11.txt, 04_mid_2_12.txt, 04_mid_2_13.txt, 04_mid_2_14.txt, 04_mid_2_15.txt, 05_mid_3_01.txt, 05_mid_3_02.txt, 05_mid_3_03.txt, 05_mid_3_04.txt, 05_mid_3_05.txt, 06_mid_4_01.txt, 06_mid_4_02.txt, 06_mid_4_03.txt, 06_mid_4_04.txt, 06_mid_4_05.txt, 07_mid_5_01.txt, 07_mid_5_02.txt, 07_mid_5_03.txt, 07_mid_5_04.txt, 07_mid_5_05.txt, 08_max_1_01.txt, 08_max_1_02.txt, 08_max_1_03.txt, 08_max_1_04.txt, 08_max_1_05.txt, 08_max_1_06.txt, 08_max_1_07.txt, 08_max_1_08.txt, 08_max_1_09.txt, 08_max_1_10.txt, 08_max_1_11.txt, 08_max_1_12.txt, 08_max_1_13.txt, 08_max_1_14.txt, 08_max_1_15.txt, 09_max_2_01.txt, 09_max_2_02.txt, 09_max_2_03.txt, 09_max_2_04.txt, 09_max_2_05.txt, 09_max_2_06.txt, 09_max_2_07.txt, 09_max_2_08.txt, 09_max_2_09.txt, 09_max_2_10.txt, 09_max_2_11.txt, 09_max_2_12.txt, 09_max_2_13.txt, 09_max_2_14.txt, 09_max_2_15.txt, 10_max_3_01.txt, 10_max_3_02.txt, 10_max_3_03.txt, 10_max_3_04.txt, 10_max_3_05.txt, 11_max_4_01.txt, 11_max_4_02.txt, 11_max_4_03.txt, 11_max_4_04.txt, 11_max_4_05.txt, 12_max_5_01.txt, 12_max_5_02.txt, 12_max_5_03.txt, 12_max_5_04.txt, 12_max_5_05.txt
Case Name Status Exec Time Memory
01_sample_01.txt AC 1 ms 3556 KiB
02_small_01.txt AC 2 ms 3500 KiB
02_small_02.txt AC 2 ms 3688 KiB
02_small_03.txt AC 2 ms 3528 KiB
03_mid_1_01.txt AC 3 ms 3544 KiB
03_mid_1_02.txt AC 4 ms 3612 KiB
03_mid_1_03.txt AC 4 ms 3500 KiB
03_mid_1_04.txt AC 4 ms 3464 KiB
03_mid_1_05.txt AC 3 ms 3532 KiB
03_mid_1_06.txt AC 3 ms 3464 KiB
03_mid_1_07.txt AC 4 ms 3552 KiB
03_mid_1_08.txt AC 4 ms 3492 KiB
03_mid_1_09.txt AC 3 ms 3468 KiB
03_mid_1_10.txt AC 4 ms 3480 KiB
03_mid_1_11.txt AC 4 ms 3460 KiB
03_mid_1_12.txt AC 4 ms 3448 KiB
03_mid_1_13.txt AC 3 ms 3620 KiB
03_mid_1_14.txt AC 4 ms 3492 KiB
03_mid_1_15.txt AC 4 ms 3500 KiB
04_mid_2_01.txt AC 2 ms 3544 KiB
04_mid_2_02.txt AC 3 ms 3492 KiB
04_mid_2_03.txt AC 2 ms 3556 KiB
04_mid_2_04.txt AC 2 ms 3496 KiB
04_mid_2_05.txt AC 2 ms 3692 KiB
04_mid_2_06.txt AC 2 ms 3488 KiB
04_mid_2_07.txt AC 2 ms 3544 KiB
04_mid_2_08.txt AC 2 ms 3504 KiB
04_mid_2_09.txt AC 2 ms 3600 KiB
04_mid_2_10.txt AC 2 ms 3496 KiB
04_mid_2_11.txt AC 2 ms 3496 KiB
04_mid_2_12.txt AC 2 ms 3464 KiB
04_mid_2_13.txt AC 2 ms 3484 KiB
04_mid_2_14.txt AC 2 ms 3500 KiB
04_mid_2_15.txt AC 3 ms 3552 KiB
05_mid_3_01.txt AC 2 ms 3688 KiB
05_mid_3_02.txt AC 2 ms 3428 KiB
05_mid_3_03.txt AC 2 ms 3508 KiB
05_mid_3_04.txt AC 2 ms 3548 KiB
05_mid_3_05.txt AC 2 ms 3500 KiB
06_mid_4_01.txt AC 3 ms 3656 KiB
06_mid_4_02.txt AC 3 ms 3500 KiB
06_mid_4_03.txt AC 3 ms 3508 KiB
06_mid_4_04.txt AC 3 ms 3532 KiB
06_mid_4_05.txt AC 3 ms 3688 KiB
07_mid_5_01.txt AC 3 ms 3548 KiB
07_mid_5_02.txt AC 3 ms 3688 KiB
07_mid_5_03.txt AC 4 ms 3496 KiB
07_mid_5_04.txt AC 4 ms 3500 KiB
07_mid_5_05.txt AC 3 ms 3544 KiB
08_max_1_01.txt AC 4 ms 3700 KiB
08_max_1_02.txt AC 4 ms 3564 KiB
08_max_1_03.txt AC 4 ms 3480 KiB
08_max_1_04.txt AC 4 ms 3516 KiB
08_max_1_05.txt AC 4 ms 3512 KiB
08_max_1_06.txt AC 4 ms 3504 KiB
08_max_1_07.txt AC 4 ms 3564 KiB
08_max_1_08.txt AC 3 ms 3512 KiB
08_max_1_09.txt AC 4 ms 3508 KiB
08_max_1_10.txt AC 4 ms 3564 KiB
08_max_1_11.txt AC 4 ms 3500 KiB
08_max_1_12.txt AC 4 ms 3440 KiB
08_max_1_13.txt AC 4 ms 3512 KiB
08_max_1_14.txt AC 4 ms 3560 KiB
08_max_1_15.txt AC 4 ms 3516 KiB
09_max_2_01.txt AC 2 ms 3524 KiB
09_max_2_02.txt AC 2 ms 3440 KiB
09_max_2_03.txt AC 2 ms 3564 KiB
09_max_2_04.txt AC 2 ms 3608 KiB
09_max_2_05.txt AC 2 ms 3508 KiB
09_max_2_06.txt AC 2 ms 3516 KiB
09_max_2_07.txt AC 2 ms 3552 KiB
09_max_2_08.txt AC 2 ms 3704 KiB
09_max_2_09.txt AC 4 ms 3540 KiB
09_max_2_10.txt AC 2 ms 3516 KiB
09_max_2_11.txt AC 2 ms 3632 KiB
09_max_2_12.txt AC 4 ms 3436 KiB
09_max_2_13.txt AC 2 ms 3508 KiB
09_max_2_14.txt AC 2 ms 3564 KiB
09_max_2_15.txt AC 4 ms 3564 KiB
10_max_3_01.txt AC 2 ms 3484 KiB
10_max_3_02.txt AC 2 ms 3516 KiB
10_max_3_03.txt AC 2 ms 3504 KiB
10_max_3_04.txt AC 2 ms 3480 KiB
10_max_3_05.txt AC 2 ms 3640 KiB
11_max_4_01.txt AC 3 ms 3700 KiB
11_max_4_02.txt AC 2 ms 3520 KiB
11_max_4_03.txt AC 3 ms 3568 KiB
11_max_4_04.txt AC 2 ms 3520 KiB
11_max_4_05.txt AC 2 ms 3480 KiB
12_max_5_01.txt AC 3 ms 3628 KiB
12_max_5_02.txt AC 3 ms 3560 KiB
12_max_5_03.txt AC 3 ms 3636 KiB
12_max_5_04.txt AC 3 ms 3472 KiB
12_max_5_05.txt AC 3 ms 3500 KiB