似乎是判断条件有误
#include<bits/stdc++.h>
using namespace std;
struct node
{
int x,y,w;
};
int dx[]={1,-1,0,0,0};
int dy[]={0,0,1,-1,0};
int b[306][306],l,r,t,m;
bool vis[306][306];
void bfs(){
queue<node>q;
vis[0][0]=1,q.push({0,0,0});
while(!q.empty()){
node now=q.front();q.pop();
for(int i=0;i<4;i++){
int u=now.x+dx[i],v=now.y+dy[i];
if((++now.w<b[u][v]||!b[u][v])&&!vis[u][v]&&u>=0&&v>=0)
if(!b[u][v])
cout<<now.w,exit(0);
else
q.push({u,v,now.w}),vis[u][v]=1;
}
}
}
int main(){
cin>>m;
for(int i=1;i<=m;i++){
cin>>l>>r>>t;
for(int j=0;j<5;j++){
int u=l+dx[j],v=r+dy[j];
if(u>=0&&v>=0)
if(b[u][v])
b[u][v]=min(b[u][v],t);
else
b[u][v]=t;
}
}
bfs();
cout<<-1;
return 0;
}