Submission #1365816


Source Code Expand

 //ABC07 C

#include <iostream>
#include <deque>
using namespace std;


inline int getindex(int r, int c, int C) {
	return C * (r-1) + (c-1);
}



#define MAX 2500
int main()
{

	int R, C;
	int sy, sx;
	int gy, gx;

	int map[MAX];
	int *mapx[50];

	cin >> R >> C >> sy >> sx >> gy >> gx;

	for (int r = 0; r < R; r++) {
		mapx[r] = &map[C*r];
		char str[51];
		cin >> str;
		for (int c = 0; c < C; c++) {
			if (str[c] == '#')
				map[C * r + c] = -1;
			else
				map[C * r + c] = 0;
		}
	}

	//for (int r = 0; r < R; r++) {
	//	for (int c = 0; c < C; c++) {
	//		cout << mapx[r][c] << "\t";
	//	}
	//	cout << endl;
	//}

	deque<int> list;
	list.push_back(getindex(sy, sx,C));
	mapx[sy-1][sx-1] = 1;
	int golindex = getindex(gy, gx, C);
	while (list.front() != golindex)
	{
		int target = list.front();
		list.pop_front();
		int level = map[target] + 1;

			if (map[target -1] == 0) {
				list.push_back(target - 1);
				map[target -1] = level;
			}



		if (map[target + 1] == 0) {
			list.push_back(target + 1);
			map[target + 1] = level;
		}
		if (map[target - C] == 0) {
			list.push_back(target - C);
			map[target - C] = level;

		}
		if (map[target + C] == 0) {
			list.push_back(target + C);
			map[target + C] = level;
		}
	}

	cout << map[list.front()] - 1 << endl;
	/*for (int r = 0; r < R; r++) {
		for (int c = 0; c < C; c++) {
			cout << mapx[r][c] << "\t";
		}
		cout << endl;
	}
*/

	return 0;
}


Submission Info

Submission Time
Task C - 幅優先探索
User tacchan_net
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1505 Byte
Status AC
Exec Time 1 ms
Memory 256 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 1 ms 256 KB
subtask0_sample02.txt AC 1 ms 256 KB
subtask0_sample03.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 1 ms 256 KB
subtask1_04.txt AC 1 ms 256 KB
subtask1_05.txt AC 1 ms 256 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt AC 1 ms 256 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt AC 1 ms 256 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 1 ms 256 KB
subtask1_13.txt AC 1 ms 256 KB
subtask1_14.txt AC 1 ms 256 KB
subtask1_15.txt AC 1 ms 256 KB
subtask1_16.txt AC 1 ms 256 KB
subtask1_17.txt AC 1 ms 256 KB
subtask1_18.txt AC 1 ms 256 KB
subtask1_19.txt AC 1 ms 256 KB
subtask1_20.txt AC 1 ms 256 KB
subtask1_21.txt AC 1 ms 256 KB
subtask1_22.txt AC 1 ms 256 KB