QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#270691 | #5414. Stop, Yesterday Please No More | Feet_McYeet | WA | 5ms | 7132kb | C++20 | 2.8kb | 2023-12-01 11:29:06 | 2023-12-01 11:29:07 |
Judging History
answer
#include <iostream>
#include <cmath>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <array>
#include <iterator>
#include <algorithm>
// #include <bit>
#include <numeric>
#include <iomanip>
using namespace std;
#pragma GCC optimize ("Ofast")
#pragma GCC target ("avx2")
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<long long, long long> pll;
typedef pair<short, short> pss;
#define el << '\n'
#define nl cout << '\n'
#define cina(a,n) for (int i=0; i<n; i++) cin >> a[i]
#define spc << ' '
#define forn(i,n) for (int i=0; i<n; i++)
#define forl(i,s,e) for (int i=s; i<e; i++)
#define pb push_back
#define fi first
#define se second
#define MAX *max_element
#define MIN *min_element
#define rsz resize
#define sz(x) ((int) x.size())
#define all(x) x.begin(), x.end()
#define bsi(x, v) (int) (lower_bound(x.begin(), x.end(), v) - x.begin())
const int inf = 1000000000;
const ll inf2 = 4000000000000000000;
void smin(int& a, int b) {
if (b<a) a=b;
}
void smax(int& a, int b) {
if (b>a) a=b;
}
const int MAXN = 1005;
int n, m, k;
// set<pii> l;
int ps[MAXN*2][MAXN*2];
int a[MAXN*2][MAXN*2];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t; cin >> t;
while (t--) {
// l.clear();
cin >> n >> m >> k;
forn(i,2*n+2) forn(j,2*n+2) {
a[i][j] = 0;
ps[i][j] = 0;
}
string s; cin >> s;
// l.insert({0,0});
int sx=0, sy=0, lx=0, ly=0;
int cx = 0, cy = 0;
a[n][m]=1;
for (char i : s) {
if (i == 'U') cx++;
else if (i == 'D') cx--;
else if (i == 'L') cy++;
else cy--;
// l.insert({cx, cy});
smin(sx, cx); smax(lx, cx);
smin(sy, cy); smax(ly, cy);
if (-n <= cx && cx <= n && -m <= cy && cy <= m) a[cx+n][cy+m]=1;
}
// forn(i,2*n) {
// forn(j,2*m) cout << a[i][j];
// nl;
// }
// nl;
int ns = max(n+sx-lx,0)*max(m+ly-sy,0);
if (ns == 0) {
if (k == 0) cout << n*m el;
else cout << 0 el;
continue;
}
forn(i,2*n+1) forn(j,2*m+1) ps[i+1][j+1] = ps[i][j+1] + ps[i+1][j] - ps[i][j] + a[i+1][j+1];
int tot = 0;
forl(i,1,n+1) forl(j,1,m+1) {
int xl = lx - i;
int xr = n + sx - i;
int yl = ly - j;
int yr = m + sy - j;
int v = ps[xr+n][yr+m] - ps[xl+n][yr+m] - ps[xr+n][yl+m] + ps[xl+n][yl+m];
if ((xr-xl)*(yr-yl) - v == k) {
tot++;
// cout << i spc << j el;
}
}
cout << tot el;
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 5548kb
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: -100
Wrong Answer
time: 5ms
memory: 7132kb
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 0 15 0 0 13 14 18 26 16 1 19 108 8 2 1 3 7 0 30 16 21 0 8 10 0 15 5 2 11 7 3 0 0 12 0 11 0 0 14 0 22 36 51 23 7 6 4 2 0 0 8 63 22 49 13 10 4 108 10 18 44 0 15 9 0 0 30 14 99 105 10 14 17 0 0 10 11 28 52 34 56 33 14 56 0 14 0 121 3 48 19 36 13 0 0 7 8 3 11 16 45 20 34 0 38 0 20 ...
result:
wrong answer 8th numbers differ - expected: '240', found: '0'