为什么自定义语句会报错?
查看原帖
为什么自定义语句会报错?
579492
CZCCZC楼主2022/3/30 07:52
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<algorithm>
#include<cstdlib>
#include<iomanip>
using namespace std;
#define MIN (x , y , t)  if(x >= 0 && y >= 0)  death[x][y] = min(death[x][y] , t)
#define MAXN 310
struct coord {
	int x , y ; 
};
queue < coord > Q ;
int ans[MAXN][MAXN] , death[MAXN][MAXN] ; 
int wk[4][2] = {{0 , 1} , {1 , 0} , {-1 , 0} , {0 , -1}} ; 
int main() {
	int m , Ans = 100000 ;
	memset(ans , -1 , sizeof(ans)) ; 
	memset(death , 0x7f , sizeof(death)) ; 
	cin >> m ; 
	for(int i = 1 ; i <= m ; i++) {
		int x , y , t ;
		cin >> x >> y >> t ; 
 
		 MIN(x , y , t) ; 
		 for(int k = 0 ; k < 4 ; k++) 
		 	MIN(x + wk[k][0] , y + wk[k][1] , t) ; 
	}
	Q.push((coord) {0 , 0}) ; 
	ans[0][0] = 0 ; 
	while(!Q.empty()) {
		coord u = Q.front() ; 
		int ux = u.x , uy = u.y ; 
		Q.pop() ; 
		for(int k = 0 ; k < 4 ; k++) {
			int x = ux + wk[k][0] , y = uy + wk[k][1] ; 
			if(x < 0 || y < 0 || ans[x][y] != -1 || ans[ux][uy] + 1 >= death[x][y])
				continue ; 
			ans[x][y] = ans[ux][uy] + 1 ; 
			Q.push((coord) {x , y}) ; 
		}
 	}
 	for(int i = 0 ; i <= 305 ; i++) 
 		for(int j = 0 ; j <= 305 ; j++) 
 			if(death[i][j] > 1000 && ans[i][j] != -1)
 				Ans = min(Ans , ans[i][j]);
 	if(Ans == 100000) 
 		puts("-1") ; 
 	else
 		cout << ans << endl ; 
	return 0 ; 
}

自定义的MIN语句错误(第十三行),哪位大佬能帮我看一下?

2022/3/30 07:52
加载中...