QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#151539 | #5414. Stop, Yesterday Please No More | Miguel0312 | AC ✓ | 20ms | 22460kb | C++14 | 3.3kb | 2023-08-26 22:17:21 | 2023-08-26 22:17:23 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define F(i, a, b) for (int i = a; i < b; i++)
#define FE(i, a, b) for (int i = a; i <= b; i++)
#define FR(i, a, b) for (int i = a; i > b; i--)
#define FRE(i, a, b) for (int i = a; i >= b; i--)
#define ll \
long long // data types used often, but you don't want to type them time by
// time
#define ull unsigned long long
#define ui unsigned int
#define us unsigned short
#define FOREACH(i, t) \
for (auto i = t.begin(); i != t.end(); i++) // traverse an STL data structure
#define ALL(c) (c).begin(), (c).end() // handy for function like "sort()"
#define IND(e, arr) find(begin(arr), end(arr), e) - begin(arr)
#define IOS \
ios_base::sync_with_stdio(0); // to synchronize the input of cin and scanf
#define INF 1001001001
#define PI 3.1415926535897932384626
#define mp make_pair
#define fi first
#define se second
#define pb push_back
typedef pair<int, int> ii;
typedef vector<int> vi;
typedef vector<pair<int, int>> vii;
typedef vector<vector<int>> vvi;
typedef vector<bool> vb;
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
#define N 1100
int dp[2 * N][2 * N];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
string dir = "LDRU", s;
int t, n, m, k;
cin >> t;
while (t--) {
cin >> n >> m >> k;
ll x = 0, y = 0, l = 0, d = 0, r = 0, u = 0;
cin >> s;
for (int i = -n - 1; i <= n; i++) {
for (int j = -m - 1; j <= m; j++) {
dp[N + i][N + j] = 0;
}
}
dp[N][N] = 1;
for (char c : s) {
int index = dir.find(c);
x += dx[index], y += dy[index];
l = max(l, x);
r = max(r, -x);
u = max(u, -y);
d = max(d, y);
if (abs(x) <= m && abs(y) <= n) {
dp[N - y][N + x] = 1;
}
}
for (int i = -n; i <= n; i++) {
for (int j = -m; j <= m; j++) {
// cout << dp[N + i][N + j] << ' ';
dp[N + i][N + j] += dp[N + i - 1][N + j] + dp[N + i][N + j - 1] -
dp[N + i - 1][N + j - 1];
}
// cout << endl;
}
// cout << l << ' ' << r << ' ' << u << ' ' << d << endl;
ll cnt = n * m - (l + r) * n - (u + d) * max(m - l - r, 0ll);
cnt = max(cnt, 0ll) - k;
ii tl = {u, l}, br = {n - 1 - d, m - 1 - r};
// cout << cnt << endl;
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
int tmp;
if (l + r >= m || u + d >= n)
tmp = 0;
else {
tmp = dp[N + br.first - i][N + br.second - j] -
dp[N + br.first - i][N + tl.second - 1 - j] -
dp[N + tl.first - 1 - i][N + br.second - j] +
dp[N + tl.first - 1 - i][N + tl.second - 1 - j];
}
// cout << tmp << ' ';
// cout << (n - 1 - d) - i << ' ' << +(m - 1 - r) - j << endl;
if (tmp == cnt)
ans++;
// printf("(%d, %d), (%d, %d): %d\n", br.first - i, br.second - j,
// tl.first - i, tl.second - j, tmp);
}
}
cout << ans << '\n';
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 5480kb
input:
3 4 5 3 ULDDRR 4 5 0 UUUUUUU 4 5 10 UUUUUUU
output:
2 20 0
result:
ok 3 number(s): "2 20 0"
Test #2:
score: 0
Accepted
time: 2ms
memory: 7588kb
input:
1060 19 12 0 UDLDDUUUUDDDLLRDUDUURULUUUDRDUDRDRLRLRLULULLLDLDDRLUUUURUUUDDRLLRUUUDULURUULLRDRLRDDURDUUURRRLURLRUULRRUDURDLUUURDLURDDLUUURDDRLLURRDLRUDLRDRLLRRDRDDLDRURRRLUDULLLRUUDLRRURRDLLRRRDLLRDDDLRLRURURDDDL 11 1 0 UR 3 18 33 UDRLR 17 11 132 RLDRDLDRUU 6 10 13 UULUDDLRDLUUDLDD 1 15 0 D 6 20 50 D...
output:
228 11 20 99 18 15 34 240 15 0 0 13 14 18 26 16 1 19 108 8 2 2 3 7 0 30 16 21 0 8 10 9 15 5 320 11 7 3 0 0 12 0 11 0 0 14 0 22 36 51 23 7 6 4 2 48 28 8 63 22 49 13 10 4 108 10 18 44 0 15 9 0 4 30 14 99 105 10 14 17 0 66 10 11 28 52 34 56 33 14 56 90 14 0 121 3 48 30 36 13 0 30 7 8 3 11 16 45 20 34 0...
result:
ok 1060 numbers
Test #3:
score: 0
Accepted
time: 5ms
memory: 20616kb
input:
1 1000 1000 979065 DDUULULUDULLULLDLUULURRLDURLRDLRRUURUUUDLRLUUDUUDUDLLDDDULU
output:
958416
result:
ok 1 number(s): "958416"
Test #4:
score: 0
Accepted
time: 10ms
memory: 20624kb
input:
1 1000 1000 943471 LRLDLURLDLRDRDUULULRDDLLRURDUURLLDDLDLDDLLLUUURLDRUDRLLUUUUUDLUUDLURURRDLRLRRRLULRRULURLRRDLDRLUDRRLDDLUDRRLLUDLLLRDULRRRRLDUUDRDLULUUUUDRRDULUDLLUUDLDURDRRLRRLDRLDDRURURLUULRRLDLLRLRDRRUULDLDLULLDLLRULLRUULURDURRLUUDUULLULDLRUDDLRLRLLUDDDLLLUDRRLDDULRRURRDURDDRDLLULRLULURLRDLLURD...
output:
889224
result:
ok 1 number(s): "889224"
Test #5:
score: 0
Accepted
time: 15ms
memory: 21576kb
input:
1 1000 1000 315808 LLRURURRDDDULLDDUDRDLRLLLDDDLUDRDURLDULRLRULUUDLUULUUDULLLLDDURLDUULUUDLLDLLDRUDUULRLLRLRUURLRLULLDDLLDUDLLRUUDRLDLUULDLLDRRRURDULLDRRRDURURDRLDURURUDLURLDURRLRRUDUDURDRLRRRDLRRURLURUDRRLDLRULLDLUURDURLURLLRDLRDRUURURDRUDUUUDLRRLUDLUUDUDDRRDUULUUDDRLLULDUUDRURRDRLULRLULDURLURUDLLD...
output:
426
result:
ok 1 number(s): "426"
Test #6:
score: 0
Accepted
time: 5ms
memory: 20648kb
input:
1 1000 1000 986018 LLULDRRRDDURRUDRUURRRDDLUUDUULRULRDULLD
output:
972180
result:
ok 1 number(s): "972180"
Test #7:
score: 0
Accepted
time: 3ms
memory: 20680kb
input:
1 1000 1000 945431 DDRRURUUDLDULLDLDDLRULDLLDDRRLUDRLUURRLDRDLURUURRRRLRURLURULLLDRDDDRRRLDLDRLRDDUURRURDDDLRUURLUURLRDUDDDLLDUURLDLUDLLRRDUUDRLUULLUULDLURRUDLUURLRLRURDUDRRRDRLRUDLLLLURLULRLRLRRDDUDLRLDUUUULUDLLURRLURRDLRURRRULDDLLLRLRDLUDLLDDRULDUULRDDUUDDUDLURDULLDUDDLULRULDRLDDULDULLUDLULUDRURRR...
output:
893000
result:
ok 1 number(s): "893000"
Test #8:
score: 0
Accepted
time: 20ms
memory: 21584kb
input:
1 1000 1000 460035 RDDUURDULDDLDDLDDLDRRULLRLUURLURRRDRUDDDRDLDLDULUDLRLLRRLRRURRRDLRLUDRDURULDRRDDDDDDLRLDULUULDUDRLLUUUURUUDRURLRRULDRDRUUUUULULRURDDRLRULLLRDRRULUDDUDDLLLRDRUULUUDDRLURDLDURRDLRRLDRRUDLUULRDLURULLDLRLLDDURDUDLDULDLLRULRDLRLUULLUDRUDDDLRRDULULLRUURLUURRLLLLRLDRURLLRLDRRDDDRLUUUUDUL...
output:
417
result:
ok 1 number(s): "417"
Test #9:
score: 0
Accepted
time: 7ms
memory: 20608kb
input:
1 1000 1000 992010 LLLLLDLDRRLUDRR
output:
1999
result:
ok 1 number(s): "1999"
Test #10:
score: 0
Accepted
time: 6ms
memory: 20828kb
input:
1 1000 1000 919600 LLDLRUDRLURRUDRDRRDLRUDLRRRUUULDLDURDDDRUURRRLLURULDRLRLULLULDRULULRLRRRURLDDDRUUULUDLLLLRRLLRDDRDULUDLRLRLDRLUDUDURRULUULLDULUULDLLDRDULUDLDULDDUULDDRRURDRDULRRLDRRDUURURRLUUUDRRLDRRDDLULRDDLDLLRLRLLLRULUUUURRRLDLRUDRRLRURDRLDULLLUDRULLDLDRRUUDLRRLLRLDDLUDLRLRRURUUDUULUDURDURRLUU...
output:
944
result:
ok 1 number(s): "944"
Test #11:
score: 0
Accepted
time: 14ms
memory: 22460kb
input:
1 1000 1000 804351 DLRLDLLLLUDRDURRLDDRRLRUULURURDDDRDLRUDDULRRLLULURDRUUDRURRLURRRDRURRDRLULRDLRRDRRDDUDLUDLDULRUURRLRUUDRLDDRDDUUDULUULUUUDLRURULLRDUUDDDRRLDRUDDUUDRURLRDRUDLRLDDRRLLRLRDUDDULLULRLLDDUDDDUULDULLRRULULDUUULUDRRDRLUDLRRDDUDLRRDDLDLDRUULRRRRRLRLULLRDDRDDDULDRRURUDDLURLRLURLRDRULUDULUU...
output:
640000
result:
ok 1 number(s): "640000"