输入:
```
2
0 1 2
1 0 2
```
输出:
```
-1
```
你的输出:
```
0
```
@[aojiaoluolisaiban](/user/1278788)
by sybnb @ 2024-02-07 12:19:37
```
#include <bits/stdc++.h>
#include <stdlib.h>
using namespace std;
int main()
{
int M;
cin>>M;
//if(M==2){
// cout<<-1;
//}
int bomb[303][303];
int time[303][303];
int dx[5] = {0,0,1,-1,0};
int dy[5] = {1,-1,0,0,0};
for(int i=0;i<303;i++)
{
for(int j=0;j<303;j++)
{
bomb[i][j] = 50001;
}
}
memset(time,-1,sizeof(time));
int bomb_x,bomb_y,bomb_t;
for(int i=1;i<=M;i++){
cin >> bomb_x >> bomb_y >> bomb_t;
for(int j=0;j<5;j++){
int a = bomb_x + dx[j];
int b = bomb_y + dy[j];
if(a>=0&&b>=0&&bomb[a][b]>bomb_t)
bomb[a][b] = bomb_t;
}
}
queue<int> q_x,q_y;
q_x.push(0);
q_y.push(0);
time[0][0] = 0;
while(!q_x.empty()){
int x = q_x.front();
int y = q_y.front();
q_x.pop();
q_y.pop();
for(int i=0;i<5;i++){
int a = x + dx[i];
int b = y + dy[i];
if(a>=0 && b>=0 && bomb[a][b]>time[x][y]+1 &&time[a][b] == -1){
time[a][b] = time[x][y]+1;
q_x.push(a);
q_y.push(b);
}
}
if((bomb[q_x.front()][q_y.front()] == 50001) || q_x.front() > 300 || q_y.front() > 300)
break;
}
if(time[q_x.front()][q_y.front()]==0){//改了这里
cout<<-1;
}
else cout<<time[q_x.front()][q_y.front()];
return 0;
}
```
by sybnb @ 2024-02-07 12:20:10
@[sybnb](/user/995948) 蟹蟹嗷
by aojiaoluolisaiban @ 2024-02-11 10:34:50