样例没过,求调
查看原帖
样例没过,求调
531085
wq_pw楼主2024/1/2 20:35
/*(^v^)*/
#include<bits/stdc++.h>
using namespace std;
const int N=305,M=50000;
int dx[]={ 1, 0, 0,-1};
int dy[]={ 0, 1,-1, 0};
int n,m,T=1e9;
struct mp{int mt,tm,pt;}a[N][N];
void dfs(int x,int y,int t)
{
	t++;
	if(a[x][y].mt==0)
	{
		T=min(T,t);
		return ;
	}
	if(a[x][y].tm<=t || x<0 || y<0 || a[x][y].pt==1)  return ;
	for(int i=0;i<4;i++)
	{
		a[x][y].pt=1;
		dfs(x+dx[i],y+dy[i],t);
	}
}

signed main()
{
	cin>>m;
	for(int i=1;i<=m;i++)
	{
		int x,y,t;	cin>>x>>y>>t;
		a[x][y].tm=t;a[x][y].mt=1;
	}
	dfs(0,0,0);
	if(T==1e9)  cout<<"-1";
	else cout<<T;
	return 0;
}
/*(^v^)*/

2024/1/2 20:35
加载中...