QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#673042 | #4434. Lemurs | kirco | WA | 191ms | 6692kb | C++23 | 1.8kb | 2024-10-24 20:24:10 | 2024-10-24 20:24:12 |
Judging History
answer
#include <bits/stdc++.h>
#define iosy ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N = 1005;
int dx[4]={1,0,-1,0},dy[4]={0,-1,0,1};
int n,m,k;
vector<vector<char>> mp(N,vector<char>(N));
bool use[N][N];
char ans[N][N];
bool pd(int x,int y){//判断是否出图
if(x<1||x>n||y<1||y>m)return false;
return true;
}
void bfs1(int x,int y){
queue<pair<int,int>> q;
vector<vector<bool>> vis(n+1,vector<bool>(m+1,false));
q.push({x,y});vis[x][y]=true;
while(!q.empty()){
auto& [tx,ty]=q.front();
q.pop();
use[tx][ty]=1;
for(int i=0;i<4;i++){
int tnx=tx+dx[i],tny=ty+dy[i];
if(pd(tnx,tny)&&abs(tnx-x)+abs(tny-y)<=k&&!vis[tnx][tny]){
vis[tnx][tny]=1;
q.push({tnx,tny});
}
}
}
}
void bfs2(int x,int y){
queue<pair<int,int>> q;
vector<vector<bool>> vis(n+1,vector<bool>(m+1,false));
q.push({x,y});vis[x][y]=true;
while(!q.empty()){
auto& [tx,ty]=q.front();
q.pop();
ans[tx][ty]='x';
for(int i=0;i<4;i++){
int tnx=tx+dx[i],tny=ty+dy[i];
if(pd(tnx,tny)&&abs(tnx-x)+abs(tny-y)<=k&&!vis[tnx][tny]){
vis[tnx][tny]=1;
q.push({tnx,tny});
}
}
}
}
void solve(){
cin>>n>>m>>k;//觅食范围是一个菱形
for(int i=1;i<=n;i++){
string s;cin>>s;s=" "+s;
for(int j=1;j<=m;j++){
mp[i][j]=s[j];
}
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(mp[i][j]=='.')bfs1(i,j);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(!use[i][j])bfs2(i,j);
//假设可以
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(mp[i][j]=='x'&&ans[i][j]!='x'){
return cout<<"NIE\n",void();
}
}
}
cout<<"TAK\n";
//清空多测
memset(use,0,sizeof(use));
memset(ans,'B',sizeof(ans));
}
signed main()
{
iosy;
int _t=1;
cin>>_t;
while(_t--){
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 191ms
memory: 6692kb
input:
4000 1 1 1 . 1 1 1 x 1 1 1000 . 1 1 1000 x 1 1000 4 ..........................................xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
output:
TAK TAK TAK TAK TAK NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE TAK NIE NIE NIE NIE NIE ...
result:
wrong answer 8th lines differ - expected: 'TAK', found: 'NIE'