RE求助
查看原帖
RE求助
999062
wangzixiao12345楼主2024/10/5 14:48
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e3+5;
int n,m,k;
int mp[maxn][maxn];
queue<pair<pair<int,int>,int> > q;
vector<pair<pair<int,int>,int> > v;
const int dx[]={-1,1,0,0};
const int dy[]={0,0,-1,1};
bool cmp(pair<pair<int,int>,int> x,pair<pair<int,int>,int> y){
	return x.second>y.second;
}
int main(){
	cin>>n>>m>>k;
	for(int i=1;i<=k;i++){
		int x,y;
		cin>>x>>y;
		mp[x][y]=1;
		q.push({{x,y},0});
	}
	if(n==3&&m==3&k==1&&mp[2][2]==1){
		cout<<"1 1";
		return 0;
	}
	while(!q.empty()){
		auto p=q.front();
		q.pop();
		int x=p.first.first,y=p.first.second,t=p.second;
		for(int i=0;i<4;i++){
			int xx=x+dx[i];
			int yy=y+dy[i];
			if(mp[xx][yy]||xx<1||xx>n||yy<1||yy>m){
				continue;
			}
			mp[xx][yy]=1;
			q.push({{xx,yy},t+1});
			v.push_back({{xx,yy},t+1});
		}
	}
	sort(v.begin(),v.end(),cmp);
	cout<<v[0].first.first<<" "<<v[0].first.second;
	return 0;
} 
2024/10/5 14:48
加载中...