Submission #69538802
Source Code Expand
#include <iostream> #include <string> #include <algorithm> #include <functional> #include <vector> #include <stack> #include <queue> #include <set> #include <map> #include <tuple> #include <cstdio> #include <cmath> #include <cassert> #include <atcoder/all> #define rep(i, n) for(i = 0; i < n; i++) #define int long long using namespace std; using namespace atcoder; using mint = modint998244353; // PASS GRAPH WO FUKUMU KOTO int n; int a[300000]; mint dp[300001][2]; signed main() { int i, j; cin >> n; rep(i, n) { cin >> a[i]; a[i]--; } dp[0][0] = 1; rep(i, n - 1) { rep(j, 2) { if (a[i] != -2) { if (a[i] != i + 1) { if (j == 0) { dp[i + 1][1] += dp[i][j]; } } else { //a[i] == i + 1 if (j == 1 && a[i] != i - 1) continue; dp[i + 1][j] += dp[i][j]; } } else { // a[i] == -1 if (j == 0) { dp[i + 1][1] += dp[i][j] * (n - 1); dp[i + 1][0] += dp[i][j]; } else { dp[i + 1][j] += dp[i][j]; } } } } rep(i, n) { rep(j, 2) { // cout << dp[i][j].val() << " "; } // cout << endl; } mint ans = dp[n - 1][0] * n + dp[n - 1][1]; cout << ans.val() << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - Tree Sequence |
User | startcpp |
Language | C++ 20 (gcc 12.2) |
Score | 0 |
Code Size | 1569 Byte |
Status | WA |
Exec Time | 33 ms |
Memory | 7516 KiB |
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 600 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 02_min_00.txt, 02_min_01.txt, 02_min_02.txt, 02_min_03.txt, 02_min_04.txt, 02_min_05.txt, 02_min_06.txt, 02_min_07.txt, 02_min_08.txt, 02_min_09.txt, 02_min_10.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_00.txt | AC | 3 ms | 5868 KiB |
00_sample_01.txt | AC | 3 ms | 5752 KiB |
00_sample_02.txt | AC | 3 ms | 5820 KiB |
01_random_00.txt | WA | 25 ms | 7120 KiB |
01_random_01.txt | WA | 22 ms | 6812 KiB |
01_random_02.txt | WA | 33 ms | 7368 KiB |
01_random_03.txt | WA | 32 ms | 7444 KiB |
01_random_04.txt | WA | 32 ms | 7308 KiB |
01_random_05.txt | WA | 24 ms | 7132 KiB |
01_random_06.txt | WA | 20 ms | 7088 KiB |
01_random_07.txt | WA | 29 ms | 7408 KiB |
01_random_08.txt | WA | 30 ms | 7404 KiB |
01_random_09.txt | WA | 32 ms | 7468 KiB |
01_random_10.txt | WA | 25 ms | 7400 KiB |
01_random_11.txt | WA | 25 ms | 7404 KiB |
01_random_12.txt | AC | 25 ms | 7308 KiB |
01_random_13.txt | AC | 25 ms | 7404 KiB |
01_random_14.txt | WA | 26 ms | 7508 KiB |
01_random_15.txt | AC | 25 ms | 7516 KiB |
01_random_16.txt | WA | 25 ms | 7428 KiB |
01_random_17.txt | AC | 25 ms | 7440 KiB |
01_random_18.txt | AC | 25 ms | 7388 KiB |
01_random_19.txt | WA | 25 ms | 7440 KiB |
02_min_00.txt | AC | 3 ms | 5864 KiB |
02_min_01.txt | AC | 3 ms | 5948 KiB |
02_min_02.txt | AC | 3 ms | 5840 KiB |
02_min_03.txt | WA | 3 ms | 5748 KiB |
02_min_04.txt | AC | 3 ms | 5820 KiB |
02_min_05.txt | WA | 3 ms | 5824 KiB |
02_min_06.txt | WA | 3 ms | 5840 KiB |
02_min_07.txt | AC | 3 ms | 5748 KiB |
02_min_08.txt | WA | 3 ms | 5844 KiB |
02_min_09.txt | WA | 3 ms | 5748 KiB |
02_min_10.txt | AC | 3 ms | 5840 KiB |