QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#142579 | #5414. Stop, Yesterday Please No More | balpoint_pen | WA | 4ms | 7580kb | C++14 | 1.6kb | 2023-08-19 12:40:28 | 2023-08-19 12:40:30 |
Judging History
answer
/*
Author: YZB
Problem:
Time:
*/
#include <bits/stdc++.h>
#define int long long
#define rep(_i_,_l_,_r_) for(int _i_=_l_;_i_<=_r_;_i_++)
//#define FILE
using namespace std;
const int N=1005;
int sm[N][N],f[N][N];
char mv[N*N];
void solve(){
int n,m,k;
cin>>n>>m>>k;
for(int i=0;i<=n;i++)for(int j=0;j<=m;j++)sm[i][j]=f[i][j]=0;
string s;
cin>>s;
int len=s.size();
for(int i=0;i<len;i++)mv[i+1]=s[i];
int tx=0,ty=0,mxx=0,mxy=0,mix=0,miy=0;
for(int i=1;i<=len;i++){
if(mv[i]=='U')tx--;
if(mv[i]=='D')tx++;
if(mv[i]=='L')ty--;
if(mv[i]=='R')ty++;
mxx=max(mxx,tx); mix=min(mix,tx);
mxy=max(mxy,ty); miy=min(miy,ty);
}
int lx=1-mix,ly=1-miy,rx=n-mxx,ry=m-mxy;
if(lx>n||rx<1||ly>m||ry<1||lx>rx||ly>ry){
if(k==0)cout<<n*m<<'\n';
else cout<<0<<'\n';
return ;
}
int tot=(rx-lx+1)*(ry-ly+1);
f[rx][ry]=1; sm[rx][ry]++; sm[rx][ly-1]--; sm[lx-1][ry]--; sm[lx-1][ly-1]++;
for(int i=1;i<=len;i++){
if(mv[i]=='U')lx--,rx--;
if(mv[i]=='D')lx++,rx++;
if(mv[i]=='L')ly--,ry--;
if(mv[i]=='R')ly++,ry++;
if(f[rx][ry])continue; f[rx][ry]=1;
sm[rx][ry]++; sm[rx][ly-1]--; sm[lx-1][ry]--; sm[lx-1][ly-1]++;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
sm[i][j]-=sm[i-1][j]+sm[i][j-1]-sm[i-1][j-1];
int ans=0;
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)ans+=((tot-sm[i][j])==k);
cout<<ans<<'\n';
}
signed main(){
#ifdef FILE
freopen(".in","r",stdin);
freopen(".out","w",stdout);
#endif
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int tc;
cin>>tc;
while(tc--)solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 2ms
memory: 7556kb
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: 4ms
memory: 7580kb
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 11 1 3 15 0 240 6 2 4 2 1 18 1 0 1 2 1 3 0 0 1 0 2 1 0 7 0 1 0 9 5 0 320 5 2 0 1 0 1 5 2 0 0 0 0 22 0 51 0 1 6 3 0 48 28 8 0 5 0 7 3 2 0 1 4 44 0 7 1 0 4 30 0 1 105 0 0 17 0 66 0 11 28 1 10 1 5 6 2 90 2 0 0 0 48 4 0 12 1 30 4 2 3 1 8 1 0 1 0 0 1 3 2 10 1 0 6 48 1 1 225 2 2 0 3 11 0 90 3 7 228...
result:
wrong answer 3rd numbers differ - expected: '20', found: '11'