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 |
|
|
| 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 |