Submission #162585


Source Code Expand

#define _GLIBCXX_DEBUG

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
#include <queue>
#include <sstream>
#include <functional>
#include <cmath>

#define REP(i,n) for(int i=0;i<(int)n;++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define ALL(c) (c).begin(), (c).end()
#define numof(array) (sizeof (array) / sizeof *(array))

using namespace std;

int r, c, sy, sx, gy, gx;
char tmap[50][50];
int nummap[50][50];
int ans = -1;

void PassFinding(int x, int y, int num)
{
	if (x == gx&&y == gy&&(ans==-1||ans >= num))
	{
		ans = num;
		return;
	}
	if (nummap[y - 1][x - 1] <= num&&nummap[y - 1][x - 1] != -1)
		return;

	nummap[y - 1][x - 1] = num;

	//cout << x - 1 << " " << y - 1 << endl;

	if (tmap[y - 1][x - 2] != '#')
		PassFinding(x - 1, y, num + 1);
	if (tmap[y - 2][x - 1] != '#')
		PassFinding(x, y - 1, num + 1);
	if (tmap[y - 1][x] != '#')
		PassFinding(x + 1, y, num + 1);
	if (tmap[y][x - 1] != '#')
		PassFinding(x, y + 1, num + 1);
}

void solve()
{
	cin >> r >> c;
	cin >> sy >> sx;
	cin >> gy >> gx;
	for (int i = 0; i < r; i++)
	{
		for (int m = 0; m < c; m++)
		{
			cin >> tmap[i][m];
			nummap[i][m] = -1;
		}
	}

	PassFinding(sx, sy, 0);
	cout << ans << endl;
}

int main(void)
{
	solve();
	return 0;
}

Submission Info

Submission Time
Task C - 幅優先探索
User boomx
Language C++ (G++ 4.6.4)
Score 100
Code Size 1372 Byte
Status AC
Exec Time 61 ms
Memory 1060 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 25
Set Name Test Cases
Sample subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt
All subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt
Case Name Status Exec Time Memory
subtask0_sample01.txt AC 25 ms 804 KB
subtask0_sample02.txt AC 21 ms 932 KB
subtask0_sample03.txt AC 60 ms 1060 KB
subtask1_01.txt AC 22 ms 932 KB
subtask1_02.txt AC 21 ms 920 KB
subtask1_03.txt AC 22 ms 736 KB
subtask1_04.txt AC 61 ms 988 KB
subtask1_05.txt AC 61 ms 1060 KB
subtask1_06.txt AC 32 ms 924 KB
subtask1_07.txt AC 21 ms 736 KB
subtask1_08.txt AC 22 ms 732 KB
subtask1_09.txt AC 25 ms 928 KB
subtask1_10.txt AC 21 ms 792 KB
subtask1_11.txt AC 60 ms 1056 KB
subtask1_12.txt AC 60 ms 928 KB
subtask1_13.txt AC 25 ms 796 KB
subtask1_14.txt AC 21 ms 920 KB
subtask1_15.txt AC 28 ms 796 KB
subtask1_16.txt AC 32 ms 764 KB
subtask1_17.txt AC 43 ms 920 KB
subtask1_18.txt AC 36 ms 924 KB
subtask1_19.txt AC 25 ms 924 KB
subtask1_20.txt AC 22 ms 924 KB
subtask1_21.txt AC 25 ms 796 KB
subtask1_22.txt AC 22 ms 920 KB