Submission #65502553
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define rep(i, a, b) for (int i = (a); i < (b); i++)
#define all(x) begin(x), end(x)
#define sz(x) int((x).size())
using ll = long long;
using pii = pair<int, int>;
using vi = vector<int>;
#ifdef LOCAL
auto operator<<(auto& o, auto x) -> decltype(x.first, o);
auto operator<<(auto& o, auto x) -> decltype(x.end(), o) {
o << "{";
for (int i = 0; auto y : x) o << ", " + !i++ * 2 << y;
return o << "}"; }
auto operator<<(auto& o, auto x) -> decltype(x.first, o) {
return o << "(" << x.first << ", " << x.second << ")"; }
void __print(auto... x) { ((cerr << x << " "), ...) << endl; }
#define debug(x...) __print("[" #x "]:", x)
#else
#define debug(...) 2137
#endif
const int N = 200200;
int n, m;
string s;
int pra[2 * N], dol[2 * N];
int a[N], b[N];
void solve() {
cin >> n >> m >> s;
pra[n + m - 2] = dol[n + m - 2] = 0;
for (int i = n + m - 3; i >= 0; i--) {
pra[i] = pra[i + 1];
dol[i] = dol[i + 1];
pra[i] += s[i] == 'R';
dol[i] += s[i] == 'D';
}
rep(i, 0, n) a[i] = -1, b[i] = m;
int x = 0, y = 0;
rep(i, 0, n + m - 2) {
a[x] = max(a[x], y);
if (s[i] == 'D') {
x++;
} else if (s[i] == 'R') {
y++;
} else {
if (y + pra[i + 1] < m - 1) y++;
else x++;
}
}
a[x] = max(a[x], m - 1);
x = y = 0;
rep(i, 0, n + m - 2) {
b[x] = min(b[x], y);
if (s[i] == 'D') {
x++;
} else if (s[i] == 'R') {
y++;
} else {
if (x + dol[i + 1] < n - 1) x++;
else y++;
}
}
b[x] = min(b[x], m - 1);
ll odp = 0;
rep(i, 0, n) odp += a[i] - b[i] + 1;
cout << odp << '\n';
}
int main() {
cin.tie(0)->sync_with_stdio(0);
int t;
cin >> t;
while (t--) solve();
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - Union of Grid Paths |
| User | ahsoltan |
| Language | C++ 20 (gcc 12.2) |
| Score | 400 |
| Code Size | 1810 Byte |
| Status | AC |
| Exec Time | 11 ms |
| Memory | 8516 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| 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, 02_small_04.txt, 02_small_05.txt, 02_small_06.txt, 02_small_07.txt, 02_small_08.txt, 02_small_09.txt, 02_small_10.txt, 03_mid_01.txt, 03_mid_02.txt, 03_mid_03.txt, 03_mid_04.txt, 03_mid_05.txt, 04_max_01.txt, 04_max_02.txt, 04_max_03.txt, 04_max_04.txt, 04_max_05.txt, 04_max_06.txt, 04_max_07.txt, 04_max_08.txt, 04_max_09.txt, 04_max_10.txt, 04_max_11.txt, 04_max_12.txt, 04_max_13.txt, 04_max_14.txt, 04_max_15.txt, 04_max_16.txt, 04_max_17.txt, 04_max_18.txt, 04_max_19.txt, 04_max_20.txt, 04_max_21.txt, 04_max_22.txt, 04_max_23.txt, 04_max_24.txt, 04_max_25.txt, 04_max_26.txt, 04_max_27.txt, 04_max_28.txt, 04_max_29.txt, 04_max_30.txt, 04_max_31.txt, 04_max_32.txt, 04_max_33.txt, 04_max_34.txt, 04_max_35.txt, 04_max_36.txt, 04_max_37.txt, 04_max_38.txt, 04_max_39.txt, 04_max_40.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01_sample_01.txt | AC | 1 ms | 3416 KiB |
| 02_small_01.txt | AC | 11 ms | 3492 KiB |
| 02_small_02.txt | AC | 11 ms | 3468 KiB |
| 02_small_03.txt | AC | 10 ms | 3552 KiB |
| 02_small_04.txt | AC | 11 ms | 3552 KiB |
| 02_small_05.txt | AC | 10 ms | 3544 KiB |
| 02_small_06.txt | AC | 10 ms | 3548 KiB |
| 02_small_07.txt | AC | 11 ms | 3552 KiB |
| 02_small_08.txt | AC | 10 ms | 3480 KiB |
| 02_small_09.txt | AC | 11 ms | 3420 KiB |
| 02_small_10.txt | AC | 10 ms | 3448 KiB |
| 03_mid_01.txt | AC | 4 ms | 3580 KiB |
| 03_mid_02.txt | AC | 4 ms | 3524 KiB |
| 03_mid_03.txt | AC | 4 ms | 3644 KiB |
| 03_mid_04.txt | AC | 4 ms | 3516 KiB |
| 03_mid_05.txt | AC | 4 ms | 3640 KiB |
| 04_max_01.txt | AC | 5 ms | 8332 KiB |
| 04_max_02.txt | AC | 5 ms | 8376 KiB |
| 04_max_03.txt | AC | 5 ms | 8340 KiB |
| 04_max_04.txt | AC | 5 ms | 8404 KiB |
| 04_max_05.txt | AC | 5 ms | 8432 KiB |
| 04_max_06.txt | AC | 5 ms | 8292 KiB |
| 04_max_07.txt | AC | 5 ms | 8516 KiB |
| 04_max_08.txt | AC | 5 ms | 8256 KiB |
| 04_max_09.txt | AC | 7 ms | 8420 KiB |
| 04_max_10.txt | AC | 8 ms | 8364 KiB |
| 04_max_11.txt | AC | 5 ms | 8432 KiB |
| 04_max_12.txt | AC | 5 ms | 8340 KiB |
| 04_max_13.txt | AC | 5 ms | 8400 KiB |
| 04_max_14.txt | AC | 5 ms | 8372 KiB |
| 04_max_15.txt | AC | 5 ms | 8396 KiB |
| 04_max_16.txt | AC | 5 ms | 8412 KiB |
| 04_max_17.txt | AC | 5 ms | 8408 KiB |
| 04_max_18.txt | AC | 5 ms | 8336 KiB |
| 04_max_19.txt | AC | 5 ms | 8356 KiB |
| 04_max_20.txt | AC | 5 ms | 8332 KiB |
| 04_max_21.txt | AC | 7 ms | 8260 KiB |
| 04_max_22.txt | AC | 8 ms | 8396 KiB |
| 04_max_23.txt | AC | 5 ms | 8376 KiB |
| 04_max_24.txt | AC | 5 ms | 8464 KiB |
| 04_max_25.txt | AC | 5 ms | 8364 KiB |
| 04_max_26.txt | AC | 5 ms | 8432 KiB |
| 04_max_27.txt | AC | 5 ms | 8292 KiB |
| 04_max_28.txt | AC | 5 ms | 8364 KiB |
| 04_max_29.txt | AC | 5 ms | 8376 KiB |
| 04_max_30.txt | AC | 4 ms | 8400 KiB |
| 04_max_31.txt | AC | 5 ms | 8364 KiB |
| 04_max_32.txt | AC | 5 ms | 8376 KiB |
| 04_max_33.txt | AC | 8 ms | 8432 KiB |
| 04_max_34.txt | AC | 8 ms | 8372 KiB |
| 04_max_35.txt | AC | 5 ms | 8428 KiB |
| 04_max_36.txt | AC | 5 ms | 8292 KiB |
| 04_max_37.txt | AC | 8 ms | 8404 KiB |
| 04_max_38.txt | AC | 8 ms | 8432 KiB |
| 04_max_39.txt | AC | 9 ms | 8336 KiB |
| 04_max_40.txt | AC | 7 ms | 8288 KiB |