Submission #421077


Source Code Expand

#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <algorithm>
#include <cmath>
#include <math.h>
using namespace std;

vector<pair<int, int>> list;
int H, W;
vector<char> C;

bool isPush(int i, int j)
{
	if (C[i*W + j] == 'g')
	{
		return true;
	}
	else if (C[i*W + j] != '#')
	{
		C[i*W + j] = '#';
		return true;
	}
	return false;
}

void prepare(int Si, int Sj)
{
	//left
	if (Sj - 1 >= 0)
	{
		if (isPush(Si, Sj - 1))
		{
			pair<int, int> cij(Si, Sj - 1);
			list.push_back(cij);
		}
	}
	//right
	if (Sj + 1 < W)
	{
		if (isPush(Si, Sj + 1))
		{
			pair<int, int> cij(Si, Sj + 1);
			list.push_back(cij);
		}
	}
	//top
	if (Si - 1 >= 0)
	{
		if (isPush((Si-1), Sj))
		{
			pair<int, int> cij((Si - 1), Sj);
			list.push_back(cij);
		}
	}
	//down
	if (Si + 1 < H)
	{
		if (isPush((Si + 1), Sj))
		{
			pair<int, int> cij((Si + 1), Sj);
			list.push_back(cij);
		}
	}

}

int main()
{
	cin >> H >> W;
	int Si, Sj;
	int Gi, Gj;

	for (size_t i = 0; i < H; ++i)
	{
			string str;
			cin >> str;
			for (size_t k = 0; k < str.length(); ++k)
			{
				char cij = str[k];
				C.push_back(cij);
				if (cij == 's')
				{
					Si = i; Sj = k;
				}
				else if (cij == 'g')
				{
					Gi = i; Gj = k;
				}
			}
	}

	prepare(Si, Sj);

	while (1)
	{
		if (list.size() == 0)
			break;

		pair<int, int> target = list.back();
		list.pop_back();

		if (C[W*target.first + target.second]=='g')
		{
			cout << "Yes" << endl;
			return 0;
		}

		prepare(target.first, target.second);
	}
	
	cout << "No" << endl;
	return 0;
}

Submission Info

Submission Time
Task A - 深さ優先探索
User mahsan84
Language C++11 (GCC 4.9.2)
Score 100
Code Size 1656 Byte
Status AC
Exec Time 58 ms
Memory 1820 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 5
AC × 83
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt
All 00_min_01.txt, 00_min_02.txt, 00_min_03.txt, 00_min_04.txt, 00_min_05.txt, 00_min_06.txt, 00_min_07.txt, 00_min_08.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 02_rndhard_00.txt, 02_rndhard_01.txt, 02_rndhard_02.txt, 02_rndhard_03.txt, 02_rndhard_04.txt, 02_rndhard_05.txt, 02_rndhard_06.txt, 02_rndhard_07.txt, 02_rndhard_08.txt, 02_rndhard_09.txt, 02_rndhard_10.txt, 02_rndhard_11.txt, 02_rndhard_12.txt, 02_rndhard_13.txt, 02_rndhard_14.txt, 02_rndhard_15.txt, 02_rndhard_16.txt, 02_rndhard_17.txt, 02_rndhard_18.txt, 02_rndhard_19.txt, 02_rndhard_20.txt, 02_rndhard_21.txt, 02_rndhard_22.txt, 02_rndhard_23.txt, 02_rndhard_24.txt, 02_rndhard_25.txt, 02_rndhard_26.txt, 02_rndhard_27.txt, 02_rndhard_28.txt, 02_rndhard_29.txt, 02_rndhard_30.txt, 02_rndhard_31.txt, 02_rndhard_32.txt, 02_rndhard_33.txt, 02_rndhard_34.txt, 02_rndhard_35.txt, 02_rndhard_36.txt, 02_rndhard_37.txt, 02_rndhard_38.txt, 02_rndhard_39.txt, 03_rndhardsmall_00.txt, 03_rndhardsmall_01.txt, 03_rndhardsmall_02.txt, 03_rndhardsmall_03.txt, 03_rndhardsmall_04.txt, 03_rndhardsmall_05.txt, 03_rndhardsmall_06.txt, 03_rndhardsmall_07.txt, 03_rndhardsmall_08.txt, 03_rndhardsmall_09.txt
Case Name Status Exec Time Memory
00_min_01.txt AC 28 ms 808 KiB
00_min_02.txt AC 27 ms 924 KiB
00_min_03.txt AC 26 ms 920 KiB
00_min_04.txt AC 28 ms 928 KiB
00_min_05.txt AC 27 ms 916 KiB
00_min_06.txt AC 28 ms 928 KiB
00_min_07.txt AC 28 ms 924 KiB
00_min_08.txt AC 28 ms 924 KiB
00_sample_01.txt AC 27 ms 928 KiB
00_sample_02.txt AC 26 ms 800 KiB
00_sample_03.txt AC 27 ms 920 KiB
00_sample_04.txt AC 27 ms 928 KiB
00_sample_05.txt AC 27 ms 928 KiB
01_rnd_00.txt AC 44 ms 1240 KiB
01_rnd_01.txt AC 46 ms 1488 KiB
01_rnd_02.txt AC 45 ms 1320 KiB
01_rnd_03.txt AC 53 ms 1748 KiB
01_rnd_04.txt AC 48 ms 1744 KiB
01_rnd_05.txt AC 45 ms 1192 KiB
01_rnd_06.txt AC 46 ms 1240 KiB
01_rnd_07.txt AC 43 ms 1236 KiB
01_rnd_08.txt AC 42 ms 1236 KiB
01_rnd_09.txt AC 44 ms 1316 KiB
01_rnd_10.txt AC 48 ms 1256 KiB
01_rnd_11.txt AC 46 ms 1236 KiB
01_rnd_12.txt AC 45 ms 1252 KiB
01_rnd_13.txt AC 52 ms 1664 KiB
01_rnd_14.txt AC 44 ms 1316 KiB
01_rnd_15.txt AC 47 ms 1232 KiB
01_rnd_16.txt AC 44 ms 1232 KiB
01_rnd_17.txt AC 50 ms 1312 KiB
01_rnd_18.txt AC 43 ms 1236 KiB
01_rnd_19.txt AC 52 ms 1820 KiB
02_rndhard_00.txt AC 44 ms 1248 KiB
02_rndhard_01.txt AC 44 ms 1240 KiB
02_rndhard_02.txt AC 44 ms 1240 KiB
02_rndhard_03.txt AC 45 ms 1308 KiB
02_rndhard_04.txt AC 44 ms 1232 KiB
02_rndhard_05.txt AC 53 ms 1248 KiB
02_rndhard_06.txt AC 51 ms 1184 KiB
02_rndhard_07.txt AC 46 ms 1232 KiB
02_rndhard_08.txt AC 49 ms 1324 KiB
02_rndhard_09.txt AC 46 ms 1240 KiB
02_rndhard_10.txt AC 45 ms 1192 KiB
02_rndhard_11.txt AC 48 ms 1248 KiB
02_rndhard_12.txt AC 45 ms 1240 KiB
02_rndhard_13.txt AC 45 ms 1184 KiB
02_rndhard_14.txt AC 47 ms 1132 KiB
02_rndhard_15.txt AC 48 ms 1240 KiB
02_rndhard_16.txt AC 48 ms 1236 KiB
02_rndhard_17.txt AC 49 ms 1180 KiB
02_rndhard_18.txt AC 58 ms 1232 KiB
02_rndhard_19.txt AC 46 ms 1316 KiB
02_rndhard_20.txt AC 46 ms 1132 KiB
02_rndhard_21.txt AC 43 ms 1180 KiB
02_rndhard_22.txt AC 45 ms 1236 KiB
02_rndhard_23.txt AC 49 ms 1316 KiB
02_rndhard_24.txt AC 49 ms 1252 KiB
02_rndhard_25.txt AC 46 ms 1240 KiB
02_rndhard_26.txt AC 48 ms 1212 KiB
02_rndhard_27.txt AC 47 ms 1300 KiB
02_rndhard_28.txt AC 50 ms 1236 KiB
02_rndhard_29.txt AC 55 ms 1312 KiB
02_rndhard_30.txt AC 44 ms 1244 KiB
02_rndhard_31.txt AC 44 ms 1236 KiB
02_rndhard_32.txt AC 47 ms 1244 KiB
02_rndhard_33.txt AC 45 ms 1236 KiB
02_rndhard_34.txt AC 44 ms 1236 KiB
02_rndhard_35.txt AC 44 ms 1232 KiB
02_rndhard_36.txt AC 45 ms 1236 KiB
02_rndhard_37.txt AC 45 ms 1240 KiB
02_rndhard_38.txt AC 45 ms 1236 KiB
02_rndhard_39.txt AC 44 ms 1236 KiB
03_rndhardsmall_00.txt AC 28 ms 924 KiB
03_rndhardsmall_01.txt AC 26 ms 924 KiB
03_rndhardsmall_02.txt AC 27 ms 928 KiB
03_rndhardsmall_03.txt AC 35 ms 916 KiB
03_rndhardsmall_04.txt AC 27 ms 860 KiB
03_rndhardsmall_05.txt AC 27 ms 924 KiB
03_rndhardsmall_06.txt AC 27 ms 804 KiB
03_rndhardsmall_07.txt AC 26 ms 924 KiB
03_rndhardsmall_08.txt AC 29 ms 812 KiB
03_rndhardsmall_09.txt AC 27 ms 928 KiB