Submission #30943740
Source Code Expand
#include <bits/stdc++.h>
const int N = 5e5 + 10;
const int mod = 998244353;
template < typename T >
inline void read(T &cnt)
{
cnt = 0; char ch = getchar(); bool op = 1;
for (; ! isdigit(ch); ch = getchar())
if (ch == '-') op = 0;
for (; isdigit(ch); ch = getchar())
cnt = cnt * 10 + ch - 48;
cnt = op ? cnt : - cnt;
}
int n, a[N], b[N];
int head[N], nxt[N], to[N], tot;
int vis[N];
int prod = 1, siz;
inline void add(int u, int v)
{
nxt[++ tot] = head[u];
head[u] = tot;
to[tot] = v;
}
inline void dfs(int x)
{
vis[x] = 1; siz ++;
for (int i = head[x]; i; i = nxt[i])
{
int v = to[i];
if (vis[v]) continue;
dfs(v);
}
}
int F[N] = {0, 0, 3, 5}, G[N] = {0, 0, 3, 4, 7};
int main()
{
read(n);
for (int i = 1; i <= n; ++ i)
read(a[i]);
for (int i = 1; i <= n; ++ i)
{
read(b[i]);
if (b[i] != a[i])
{
add(a[i], b[i]);
add(b[i], a[i]);
}
else vis[a[i]] = 1;
if (i >= 4) F[i] = (F[i - 1] + F[i - 2]) % mod;
if (i >= 5) G[i] = (F[i - 3] + F[i - 1]) % mod;
}
for (int i = 1; i <= n; ++ i)
{
siz = 0;
if (! vis[i]) dfs(i);
if (siz)
prod = 1ll * prod * G[siz] % mod;
}
std::cout << prod << std::endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Cards |
| User | chzhc |
| Language | C++ (GCC 9.2.1) |
| Score | 500 |
| Code Size | 1241 Byte |
| Status | AC |
| Exec Time | 50 ms |
| Memory | 20840 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| random_01.txt | AC | 50 ms | 20840 KiB |
| random_02.txt | AC | 11 ms | 7032 KiB |
| random_03.txt | AC | 46 ms | 16348 KiB |
| random_04.txt | AC | 7 ms | 3992 KiB |
| random_05.txt | AC | 31 ms | 11408 KiB |
| random_06.txt | AC | 5 ms | 4432 KiB |
| random_07.txt | AC | 25 ms | 7468 KiB |
| random_08.txt | AC | 15 ms | 6192 KiB |
| random_09.txt | AC | 2 ms | 3440 KiB |
| random_10.txt | AC | 44 ms | 16780 KiB |
| random_11.txt | AC | 10 ms | 5580 KiB |
| random_12.txt | AC | 48 ms | 17028 KiB |
| random_13.txt | AC | 20 ms | 8244 KiB |
| random_14.txt | AC | 49 ms | 19512 KiB |
| random_15.txt | AC | 17 ms | 7748 KiB |
| random_16.txt | AC | 45 ms | 16176 KiB |
| random_17.txt | AC | 19 ms | 10288 KiB |
| random_18.txt | AC | 45 ms | 17200 KiB |
| random_19.txt | AC | 21 ms | 8632 KiB |
| sample_01.txt | AC | 3 ms | 3572 KiB |
| sample_02.txt | AC | 2 ms | 3644 KiB |
| sample_03.txt | AC | 2 ms | 3556 KiB |