QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#887080 | #10002. Catch The Flea | rotcar07 | AC ✓ | 1ms | 3712kb | C++23 | 872b | 2025-02-07 14:49:07 | 2025-02-07 14:49:09 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
constexpr int N=2e3+5;
int n,m,k,ans;
string s[N];
bool vis[N][N];
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n>>m>>k;
for(int i=1;i<=n;i++) cin>>s[i],s[i]=' '+s[i];
queue<pair<int,int>> Q;
auto upd=[&](int x,int y){Q.emplace(x,y);vis[x][y]=1;ans++;};
for(int i=0;i<=m+1;i++)upd(0,i),upd(n+1,i);
for(int i=1;i<=n;i++)upd(i,0),upd(i,m+1);
ans=0;
while(!Q.empty()){
auto [x,y]=Q.front();Q.pop();
for(int i=x-1;i>=max(x-k,1)&&!vis[i][y];i--)if(s[i][y]=='D') upd(i,y);
for(int i=x+1;i<=min(x+k,n)&&!vis[i][y];i++)if(s[i][y]=='U') upd(i,y);
for(int i=y-1;i>=max(y-k,1)&&!vis[x][i];i--)if(s[x][i]=='R') upd(x,i);
for(int i=y+1;i<=min(y+k,m)&&!vis[x][i];i++)if(s[x][i]=='L') upd(x,i);
}
cout<<ans<<'\n';
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3712kb
input:
5 5 2 DDDRD DDDDD RDLUL UURUU UUUUU
output:
14
result:
ok answer is '14'