Submission #43433083
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define MOD 998244353
int n, mi[6005], ma[6005];
long long da[6005][6005], db[6005][6005];
char x[6005];
int main() {
scanf("%d%s", &n, x);
mi[n * 2] = ma[n * 2] = 3002;
for (int i = n * 2 - 1; i >= 0; i--)
if (x[i] == '+') {
mi[i] = mi[i + 1] + 1;
ma[i] = ma[i + 1] + 1;
} else if (x[i] == '-') {
mi[i] = mi[i + 1] - 1;
ma[i] = ma[i + 1] - 1;
} else {
mi[i] = mi[i + 1] - 1;
ma[i] = ma[i + 1] + 1;
}
da[0][3002] = 1;
mi[0] = ma[0] = 3002;
for (int i = 0; i < n * 2; i++) {
if (x[i] == '+') {
mi[i + 1] = mi[i] + 1;
ma[i + 1] = ma[i] + 1;
} else if (x[i] == '-') {
mi[i + 1] = mi[i] - 1;
ma[i + 1] = ma[i] - 1;
} else
tie(mi[i + 1], ma[i + 1]) = make_pair(max(mi[i] - 1, -(ma[i + 1] - 3002) + 3002), min(ma[i] + 1, -(mi[i + 1] - 3002) + 3002));
for (int j = mi[i]; j <= ma[i]; j++) {
if (x[i] != '-' && j + 1 <= ma[i + 1]) {
if (abs(j + 1 - 3002) > abs(j - 3002))
db[i + 1][j + 1] = (db[i + 1][j + 1] + db[i][j] + MOD - da[i][j] * i % MOD) % MOD;
else
db[i + 1][j + 1] = (db[i + 1][j + 1] + db[i][j] + da[i][j] * i) % MOD;
da[i + 1][j + 1] = (da[i + 1][j + 1] + da[i][j]) % MOD;
}
if (x[i] != '+' && j - 1 >= mi[i + 1]) {
if (abs(j - 1 - 3002) > abs(j - 3002))
db[i + 1][j - 1] = (db[i + 1][j - 1] + db[i][j] + MOD - da[i][j] * i % MOD) % MOD;
else
db[i + 1][j - 1] = (db[i + 1][j - 1] + db[i][j] + da[i][j] * i) % MOD;
da[i + 1][j - 1] = (da[i + 1][j - 1] + da[i][j]) % MOD;
}
}
}
printf("%lld\n", db[n * 2][3002]);
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - 1D Coulomb |
| User | nhho |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 1638 Byte |
| Status | AC |
| Exec Time | 429 ms |
| Memory | 330720 KiB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:12:7: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
12 | scanf("%d%s", &n, x);
| ~~~~~^~~~~~~~~~~~~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample-01.txt, sample-02.txt |
| All | in-01.txt, in-02.txt, in-03.txt, in-04.txt, in-05.txt, in-06.txt, in-07.txt, in-08.txt, in-09.txt, in-10.txt, in-11.txt, in-12.txt, in-13.txt, in-14.txt, in-15.txt, in-16.txt, in-17.txt, in-18.txt, in-19.txt, in-20.txt, in-21.txt, in-22.txt, in-23.txt, in-24.txt, in-25.txt, in-26.txt, in-27.txt, in-28.txt, in-29.txt, in-30.txt, in-31.txt, in-32.txt, in-33.txt, in-34.txt, in-35.txt, in-36.txt, in-37.txt, in-38.txt, in-39.txt, in-40.txt, sample-01.txt, sample-02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| in-01.txt | AC | 8 ms | 3820 KiB |
| in-02.txt | AC | 3 ms | 3732 KiB |
| in-03.txt | AC | 9 ms | 3836 KiB |
| in-04.txt | AC | 7 ms | 3776 KiB |
| in-05.txt | AC | 2 ms | 3732 KiB |
| in-06.txt | AC | 2 ms | 3728 KiB |
| in-07.txt | AC | 3 ms | 3636 KiB |
| in-08.txt | AC | 2 ms | 3788 KiB |
| in-09.txt | AC | 429 ms | 330720 KiB |
| in-10.txt | AC | 368 ms | 303248 KiB |
| in-11.txt | AC | 368 ms | 303672 KiB |
| in-12.txt | AC | 371 ms | 306076 KiB |
| in-13.txt | AC | 216 ms | 191132 KiB |
| in-14.txt | AC | 212 ms | 190160 KiB |
| in-15.txt | AC | 216 ms | 191968 KiB |
| in-16.txt | AC | 79 ms | 78980 KiB |
| in-17.txt | AC | 83 ms | 80268 KiB |
| in-18.txt | AC | 80 ms | 79208 KiB |
| in-19.txt | AC | 340 ms | 282464 KiB |
| in-20.txt | AC | 343 ms | 284160 KiB |
| in-21.txt | AC | 342 ms | 283944 KiB |
| in-22.txt | AC | 255 ms | 210392 KiB |
| in-23.txt | AC | 310 ms | 254168 KiB |
| in-24.txt | AC | 168 ms | 152444 KiB |
| in-25.txt | AC | 174 ms | 155304 KiB |
| in-26.txt | AC | 70 ms | 67108 KiB |
| in-27.txt | AC | 60 ms | 56808 KiB |
| in-28.txt | AC | 3 ms | 4108 KiB |
| in-29.txt | AC | 4 ms | 4952 KiB |
| in-30.txt | AC | 4 ms | 4356 KiB |
| in-31.txt | AC | 4 ms | 4288 KiB |
| in-32.txt | AC | 6 ms | 4748 KiB |
| in-33.txt | AC | 5 ms | 4840 KiB |
| in-34.txt | AC | 374 ms | 301228 KiB |
| in-35.txt | AC | 346 ms | 279764 KiB |
| in-36.txt | AC | 279 ms | 226080 KiB |
| in-37.txt | AC | 361 ms | 292596 KiB |
| in-38.txt | AC | 45 ms | 47148 KiB |
| in-39.txt | AC | 38 ms | 36280 KiB |
| in-40.txt | AC | 37 ms | 38972 KiB |
| sample-01.txt | AC | 2 ms | 3568 KiB |
| sample-02.txt | AC | 2 ms | 3832 KiB |