QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#887080#10002. Catch The Flearotcar07AC ✓1ms3712kbC++23872b2025-02-07 14:49:072025-02-07 14:49:09

Judging History

This is the latest submission verdict.

  • [2025-02-07 14:49:09]
  • Judged
  • Verdict: AC
  • Time: 1ms
  • Memory: 3712kb
  • [2025-02-07 14:49:07]
  • Submitted

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';
}

詳細信息

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'