Submission #47990255
Source Code Expand
#include<bits/stdc++.h>
#define ll long long
#define db double
#define ull unsigned long long
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define FR first
#define SE second
using namespace std;
inline int read() {
int x = 0; bool op = false;
char c = getchar();
while(!isdigit(c))op |= (c == '-'), c = getchar();
while(isdigit(c))x = (x << 1) + (x << 3) + (c ^ 48), c = getchar();
return op ? -x : x;
}
const int N = 2e5 + 10;
const int P = 998244353;
void add(int &a, int b) {a += b; a >= P ? a -= P : 0;}
void sub(int &a, int b) {a -= b; a < 0 ? a += P : 0;}
int n;
int a[N], cnt[N], f[N], d[N];
int solve(int l, int r) {
for(int i = l; i <= r; i++)a[i - l + 1] = a[i];
int n = r - l + 1, col = 0, j = 1;
for(int i = 1; i <= n; i++)f[i] = d[i] = 0;
f[1] = 1;
for(int i = 1; i <= n; i++) {
add(d[i], d[i - 1]); add(f[i], d[i]);
while(j <= n && col <= 2)col += !cnt[a[j]], cnt[a[j]]++, j++;
if(col > 2)add(d[j - 1], f[i]);
if(i < n)add(f[i + 1], f[i]);
if(i + 2 <= n && a[i + 2] == a[i])add(f[i + 2], f[i]);
cnt[a[i]]--; col -= !cnt[a[i]];
}
return f[n];
}
int main() {
n = read();
for(int i = 1; i <= n; i++)a[i] = read();
int ans = 1;
for(int i = 1; i <= n; i++) {
int k = i;
while(k < n && a[k + 1] != a[k])k++;
ans = 1ll * ans * solve(i, k) % P; i = k;
}
printf("%d\n", ans);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Neq Neq |
| User | thebighead |
| Language | C++ 20 (gcc 12.2) |
| Score | 700 |
| Code Size | 1439 Byte |
| Status | AC |
| Exec Time | 8 ms |
| Memory | 6892 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 700 / 700 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 00-sample-004.txt |
| All | 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 00-sample-004.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt, 01-029.txt, 01-030.txt, 01-031.txt, 01-032.txt, 01-033.txt, 01-034.txt, 01-035.txt, 01-036.txt, 01-037.txt, 01-038.txt, 01-039.txt, 01-040.txt, 01-041.txt, 01-042.txt, 01-043.txt, 01-044.txt, 01-045.txt, 01-046.txt, 01-047.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-001.txt | AC | 1 ms | 3656 KiB |
| 00-sample-002.txt | AC | 1 ms | 3684 KiB |
| 00-sample-003.txt | AC | 1 ms | 3808 KiB |
| 00-sample-004.txt | AC | 1 ms | 3676 KiB |
| 01-001.txt | AC | 1 ms | 3816 KiB |
| 01-002.txt | AC | 5 ms | 5608 KiB |
| 01-003.txt | AC | 6 ms | 5788 KiB |
| 01-004.txt | AC | 7 ms | 5800 KiB |
| 01-005.txt | AC | 3 ms | 4628 KiB |
| 01-006.txt | AC | 5 ms | 5788 KiB |
| 01-007.txt | AC | 6 ms | 6100 KiB |
| 01-008.txt | AC | 2 ms | 4196 KiB |
| 01-009.txt | AC | 2 ms | 4252 KiB |
| 01-010.txt | AC | 3 ms | 4884 KiB |
| 01-011.txt | AC | 2 ms | 4596 KiB |
| 01-012.txt | AC | 3 ms | 4836 KiB |
| 01-013.txt | AC | 6 ms | 6048 KiB |
| 01-014.txt | AC | 3 ms | 4424 KiB |
| 01-015.txt | AC | 5 ms | 4164 KiB |
| 01-016.txt | AC | 2 ms | 3920 KiB |
| 01-017.txt | AC | 4 ms | 4080 KiB |
| 01-018.txt | AC | 4 ms | 4156 KiB |
| 01-019.txt | AC | 5 ms | 4152 KiB |
| 01-020.txt | AC | 5 ms | 4424 KiB |
| 01-021.txt | AC | 4 ms | 4504 KiB |
| 01-022.txt | AC | 3 ms | 4740 KiB |
| 01-023.txt | AC | 2 ms | 4296 KiB |
| 01-024.txt | AC | 3 ms | 4796 KiB |
| 01-025.txt | AC | 6 ms | 5944 KiB |
| 01-026.txt | AC | 8 ms | 5984 KiB |
| 01-027.txt | AC | 7 ms | 6024 KiB |
| 01-028.txt | AC | 7 ms | 6016 KiB |
| 01-029.txt | AC | 7 ms | 6336 KiB |
| 01-030.txt | AC | 8 ms | 6688 KiB |
| 01-031.txt | AC | 8 ms | 6788 KiB |
| 01-032.txt | AC | 6 ms | 6116 KiB |
| 01-033.txt | AC | 6 ms | 5968 KiB |
| 01-034.txt | AC | 7 ms | 6296 KiB |
| 01-035.txt | AC | 7 ms | 6788 KiB |
| 01-036.txt | AC | 6 ms | 5940 KiB |
| 01-037.txt | AC | 6 ms | 5944 KiB |
| 01-038.txt | AC | 7 ms | 4380 KiB |
| 01-039.txt | AC | 8 ms | 4564 KiB |
| 01-040.txt | AC | 7 ms | 4392 KiB |
| 01-041.txt | AC | 7 ms | 4552 KiB |
| 01-042.txt | AC | 7 ms | 4436 KiB |
| 01-043.txt | AC | 7 ms | 4660 KiB |
| 01-044.txt | AC | 7 ms | 5172 KiB |
| 01-045.txt | AC | 8 ms | 6892 KiB |
| 01-046.txt | AC | 6 ms | 5784 KiB |
| 01-047.txt | AC | 6 ms | 5804 KiB |