比赛 20160323 评测结果 TTAAATTTTT
题目名称 定向越野 最终得分 30
用户昵称 KZNS 运行时间 7.001 s
代码语言 C++ 内存使用 0.51 MiB
提交时间 2016-03-23 20:48:33
显示代码纯文本
//KZNS
#include <fstream>
using namespace std;
//
ifstream fin ("adven.in");
ofstream fout ("adven.out");
//
int N;
int gp[203][203];
bool ud[203][203] = {0};
int ed = 0x7fffffff;
//
void rin() {
	fin >> N;
	for (int i = 1; i <= N; i++)
		for (int j = 1; j <= N; j++)
			fin >> gp[i][j];
}
void DFS(int x, int y, int mn, int mx) {
	mn = min(mn, gp[x][y]);
	mx = max(mx, gp[x][y]);
	if (mx - mn >= ed)
		return;
	if (x == N && y == N) {
		ed = min (ed, mx - mn);
		return;
	}
	ud[x][y] = true;
	if (x + 1 <= N && (!ud[x + 1][y]))
		DFS(x + 1, y, mn, mx);
	if (x - 1 > 0 && (!ud[x - 1][y]))
		DFS(x - 1, y, mn, mx);
	if (y + 1 <= N && (!ud[x][y + 1]))
		DFS(x, y + 1, mn, mx);
	if (y - 1 > 0 && (!ud[x][y - 1]))
		DFS(x, y - 1, mn, mx);
	ud[x][y] = false;
}
//
int main() {
	rin();
	DFS(1, 1, 0x7fffffff, -0x7fffffff);
	fout << ed;
	return 0;
}
//UBWH