Submission #2997832


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
#define FOR(i,k,n) for(int i = (int)(k); i < (int)(n); i++)
#define REP(i,n) FOR(i,0,n)
#define ALL(a) a.begin(), a.end()
#define MS(m,v) memset(m,v,sizeof(m))
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef vector<string> vs;
typedef pair<int, int> pii;
const int MOD = 1e9 + 7;
template<class T> T &chmin(T &a, const T &b) { return a = min(a, b); }
template<class T> T &chmax(T &a, const T &b) { return a = max(a, b); }
template<class T>
istream& operator >> (istream& is, vector<T>& v)
{
	for (auto &i : v) is >> i;
	return is;
}
template<class T>
ostream& operator<<(ostream& os, vector<T>& v)
{
	const string delimiter = "\n";
	REP(i, v.size())
	{
		os << v[i];
		if (i != v.size() - 1) os << delimiter;
	}
	return os;
}
/*--------------------template--------------------*/

const int dx[] = { -1, 0, 1, 0 }, dy[] = { 0, -1, 0, 1 };
//const int dx[] = { -1, -1, -1, 0, 0, 1, 1, 1 }, dy[] = { 0, -1, 1, -1, 1, 0, -1, 1 };
bool valid(int x, int y, int h, int w) { return (x >= 0 && y >= 0 && x < h&&y < w); }
int place(int x, int y, int w) { return w*x + y; }

typedef tuple<int, int, int> Data;
int main()
{
	cin.sync_with_stdio(false); cout << fixed << setprecision(10);
	int h, w;
	cin >> h >> w;
	vs fld(h); cin >> fld;
	int sx, sy, gx, gy;
	REP(i, h)REP(j, w)
	{
		if (fld[i][j] == 's')
		{
			sx = i, sy = j;
			fld[i][j] = '.';
		}
		if (fld[i][j] == 'g')
		{
			gx = i, gy = j;
			fld[i][j] = '.';
		}
	}

	queue<Data> que;
	set<Data> st;
	que.emplace(sx, sy, 2);
	st.emplace(sx, sy, 2);
	bool ans = false;
	while (!que.empty())
	{
		int tx = get<0>(que.front());
		int ty = get<1>(que.front());
		int r = get<2>(que.front());
		que.pop();
		if (tx == gx && ty == gy)
		{
			ans = true;
			break;
		}
		REP(i, 4)
		{
			int nx = tx + dx[i];
			int ny = ty + dy[i];
			if (!valid(nx, ny, h, w)) continue;
			if (fld[nx][ny] == '#')
			{
				if (r == 0) continue;
				if (st.count(Data(nx, ny, r - 1))) continue;
				que.emplace(nx, ny, r - 1);
				st.emplace(nx, ny, r - 1);
			}
			else
			{
				if (st.count(Data(nx, ny, r))) continue;
				que.emplace(nx, ny, r);
				st.emplace(nx, ny, r);
			}
		}
	}
	cout << (ans ? "YES" : "NO") << endl;
	return 0;
}

Submission Info

Submission Time
Task C - 器物損壊!高橋君
User amano
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2340 Byte
Status AC
Exec Time 540 ms
Memory 33664 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 83
Set Name Test Cases
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 1 ms 256 KB
00_min_02.txt AC 1 ms 256 KB
00_min_03.txt AC 1 ms 256 KB
00_min_04.txt AC 1 ms 256 KB
00_min_05.txt AC 1 ms 256 KB
00_min_06.txt AC 1 ms 256 KB
00_min_07.txt AC 1 ms 256 KB
00_min_08.txt AC 1 ms 256 KB
00_sample_01.txt AC 1 ms 256 KB
00_sample_02.txt AC 1 ms 256 KB
00_sample_03.txt AC 1 ms 256 KB
00_sample_04.txt AC 1 ms 256 KB
00_sample_05.txt AC 1 ms 256 KB
01_rnd_00.txt AC 2 ms 512 KB
01_rnd_01.txt AC 53 ms 4992 KB
01_rnd_02.txt AC 224 ms 16640 KB
01_rnd_03.txt AC 494 ms 31232 KB
01_rnd_04.txt AC 270 ms 18816 KB
01_rnd_05.txt AC 2 ms 512 KB
01_rnd_06.txt AC 390 ms 27392 KB
01_rnd_07.txt AC 343 ms 25344 KB
01_rnd_08.txt AC 2 ms 512 KB
01_rnd_09.txt AC 2 ms 512 KB
01_rnd_10.txt AC 490 ms 32000 KB
01_rnd_11.txt AC 2 ms 512 KB
01_rnd_12.txt AC 540 ms 33664 KB
01_rnd_13.txt AC 8 ms 1152 KB
01_rnd_14.txt AC 22 ms 2688 KB
01_rnd_15.txt AC 354 ms 24320 KB
01_rnd_16.txt AC 2 ms 512 KB
01_rnd_17.txt AC 123 ms 9728 KB
01_rnd_18.txt AC 2 ms 512 KB
01_rnd_19.txt AC 167 ms 13824 KB
02_rndhard_00.txt AC 21 ms 2688 KB
02_rndhard_01.txt AC 17 ms 2304 KB
02_rndhard_02.txt AC 230 ms 17408 KB
02_rndhard_03.txt AC 195 ms 14976 KB
02_rndhard_04.txt AC 49 ms 5120 KB
02_rndhard_05.txt AC 60 ms 6528 KB
02_rndhard_06.txt AC 71 ms 7552 KB
02_rndhard_07.txt AC 18 ms 2560 KB
02_rndhard_08.txt AC 62 ms 5888 KB
02_rndhard_09.txt AC 57 ms 5504 KB
02_rndhard_10.txt AC 56 ms 5632 KB
02_rndhard_11.txt AC 57 ms 5760 KB
02_rndhard_12.txt AC 19 ms 2176 KB
02_rndhard_13.txt AC 27 ms 3072 KB
02_rndhard_14.txt AC 67 ms 6656 KB
02_rndhard_15.txt AC 55 ms 5632 KB
02_rndhard_16.txt AC 94 ms 8448 KB
02_rndhard_17.txt AC 86 ms 8192 KB
02_rndhard_18.txt AC 30 ms 3584 KB
02_rndhard_19.txt AC 14 ms 1792 KB
02_rndhard_20.txt AC 47 ms 4864 KB
02_rndhard_21.txt AC 36 ms 3968 KB
02_rndhard_22.txt AC 39 ms 4096 KB
02_rndhard_23.txt AC 30 ms 3456 KB
02_rndhard_24.txt AC 101 ms 9344 KB
02_rndhard_25.txt AC 34 ms 4224 KB
02_rndhard_26.txt AC 16 ms 2048 KB
02_rndhard_27.txt AC 9 ms 1408 KB
02_rndhard_28.txt AC 13 ms 1792 KB
02_rndhard_29.txt AC 12 ms 1664 KB
02_rndhard_30.txt AC 4 ms 768 KB
02_rndhard_31.txt AC 3 ms 640 KB
02_rndhard_32.txt AC 83 ms 8192 KB
02_rndhard_33.txt AC 40 ms 4608 KB
02_rndhard_34.txt AC 38 ms 4096 KB
02_rndhard_35.txt AC 57 ms 5760 KB
02_rndhard_36.txt AC 48 ms 5120 KB
02_rndhard_37.txt AC 46 ms 4864 KB
02_rndhard_38.txt AC 55 ms 5632 KB
02_rndhard_39.txt AC 44 ms 4736 KB
03_rndhardsmall_00.txt AC 1 ms 256 KB
03_rndhardsmall_01.txt AC 1 ms 256 KB
03_rndhardsmall_02.txt AC 1 ms 256 KB
03_rndhardsmall_03.txt AC 1 ms 256 KB
03_rndhardsmall_04.txt AC 1 ms 256 KB
03_rndhardsmall_05.txt AC 1 ms 256 KB
03_rndhardsmall_06.txt AC 1 ms 256 KB
03_rndhardsmall_07.txt AC 1 ms 256 KB
03_rndhardsmall_08.txt AC 1 ms 256 KB
03_rndhardsmall_09.txt AC 1 ms 256 KB