Submission #420186


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

#define repu(i, a, b) for (int i = (a); i < (b); ++i)
#define repd(i, a, b) for (int i = (a); i > (b); --i)
#define mem(a, x) memset(a, x, sizeof(a))
#define all(a) a.begin(), a.end()
#define uni(a) a.erase(unique(all(a)), a.end())
#define count_bits(x) __builtin_popcount(x)
#define count_bitsll(x) __builtin_popcountll(x)
#define least_bits(x) __builtin_ffs(x)
#define least_bitsll(x) __builtin_ffsll(x)
#define most_bits(x) 32 - __builtin_clz(x)
#define most_bitsll(x) 64 - __builtin_clz(x)

vector<string> split(const string &s, char c) {
	vector<string> v;
	stringstream ss(s);
	string x;
	while (getline(ss, x, c)) v.push_back(x);
	return v;
}

#define error(args...) { vector<string> _v = split(#args, ','); err(_v.begin(), args); }

void err(vector<string>::iterator it) {}

template<typename T, typename... Args>
void err(vector<string>::iterator it, T a, Args... args) {
	cerr << it -> substr((*it)[0] == ' ', it -> length()) << " = " << a << '\n';
	err(++it, args...);
}

typedef long long ll;
const int MOD = 1000000007;

template<class T> inline T tmin(T a, T b) {return (a < b) ? a : b;}
template<class T> inline T tmax(T a, T b) {return (a > b) ? a : b;}
template<class T> inline void amax(T &a, T b) {if (b > a) a = b;}
template<class T> inline void amin(T &a, T b) {if (b < a) a = b;}
template<class T> inline T tabs(T a) {return (a > 0) ? a : -a;}
template<class T> T gcd(T a, T b) {while (b != 0) {T c = a; a = b; b = c % b;} return a;}

const int N = 505;
int n, m;
char s[N][N];
bool mk[N][N];

const int dx[] = {0, 0, 1, -1};
const int dy[] = {1, -1, 0, 0};

inline bool inside(int x, int y) {
	return x >= 0 && x < n && y >= 0 && y < m;
}

void dfs(int x, int y) {
	mk[x][y] = 1;
	repu(i, 0, 4) {
		int nx = x + dx[i], ny = y + dy[i];
		if (inside(nx, ny) && !mk[nx][ny] && s[nx][ny] != '#') dfs(nx, ny);
	}
}


int main(int argc, char *argv[]) {
	ios_base::sync_with_stdio(false);
	
	int sx, sy, gx, gy;
	
	cin >> n >> m;
	repu(i, 0, n) {
		cin >> s[i];
		repu(j, 0, m) {
			if (s[i][j] == 's') sx = i, sy = j;
			if (s[i][j] == 'g') gx = i, gy = j;
		}
	}
	
	mem(mk, 0);
	dfs(sx, sy);
	
	printf("%s\n", mk[gx][gy] ? "Yes" : "No");
	
	return 0;
}

Submission Info

Submission Time
Task A - 深さ優先探索
User rantd
Language C++ (GCC 4.9.2)
Score 100
Code Size 2303 Byte
Status AC
Exec Time 44 ms
Memory 6176 KB

Compile Error

./Main.cpp:28:30: warning: variadic templates only available with -std=c++11 or -std=gnu++11
 template<typename T, typename... Args>
                              ^
./Main.cpp:29:52: warning: variadic templates only available with -std=c++11 or -std=gnu++11
 void err(vector<string>::iterator it, T a, Args... args) {
                                                    ^

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 24 ms 1056 KB
00_min_02.txt AC 26 ms 1060 KB
00_min_03.txt AC 25 ms 1056 KB
00_min_04.txt AC 25 ms 1056 KB
00_min_05.txt AC 25 ms 1060 KB
00_min_06.txt AC 24 ms 1064 KB
00_min_07.txt AC 26 ms 1052 KB
00_min_08.txt AC 25 ms 1184 KB
00_sample_01.txt AC 26 ms 1052 KB
00_sample_02.txt AC 26 ms 1056 KB
00_sample_03.txt AC 26 ms 1060 KB
00_sample_04.txt AC 26 ms 1180 KB
00_sample_05.txt AC 29 ms 1068 KB
01_rnd_00.txt AC 29 ms 1428 KB
01_rnd_01.txt AC 44 ms 5532 KB
01_rnd_02.txt AC 40 ms 3104 KB
01_rnd_03.txt AC 40 ms 4000 KB
01_rnd_04.txt AC 43 ms 5280 KB
01_rnd_05.txt AC 28 ms 1436 KB
01_rnd_06.txt AC 39 ms 2336 KB
01_rnd_07.txt AC 41 ms 3356 KB
01_rnd_08.txt AC 28 ms 1436 KB
01_rnd_09.txt AC 27 ms 1428 KB
01_rnd_10.txt AC 35 ms 1500 KB
01_rnd_11.txt AC 27 ms 1304 KB
01_rnd_12.txt AC 43 ms 4504 KB
01_rnd_13.txt AC 43 ms 4512 KB
01_rnd_14.txt AC 27 ms 1240 KB
01_rnd_15.txt AC 38 ms 2072 KB
01_rnd_16.txt AC 28 ms 1428 KB
01_rnd_17.txt AC 36 ms 1700 KB
01_rnd_18.txt AC 28 ms 1432 KB
01_rnd_19.txt AC 42 ms 6176 KB
02_rndhard_00.txt AC 27 ms 1436 KB
02_rndhard_01.txt AC 27 ms 1432 KB
02_rndhard_02.txt AC 29 ms 1428 KB
02_rndhard_03.txt AC 30 ms 1304 KB
02_rndhard_04.txt AC 27 ms 1432 KB
02_rndhard_05.txt AC 28 ms 1428 KB
02_rndhard_06.txt AC 28 ms 1428 KB
02_rndhard_07.txt AC 29 ms 1308 KB
02_rndhard_08.txt AC 29 ms 1308 KB
02_rndhard_09.txt AC 30 ms 1308 KB
02_rndhard_10.txt AC 30 ms 1320 KB
02_rndhard_11.txt AC 29 ms 1308 KB
02_rndhard_12.txt AC 27 ms 1436 KB
02_rndhard_13.txt AC 28 ms 1312 KB
02_rndhard_14.txt AC 28 ms 1312 KB
02_rndhard_15.txt AC 28 ms 1436 KB
02_rndhard_16.txt AC 28 ms 1436 KB
02_rndhard_17.txt AC 26 ms 1428 KB
02_rndhard_18.txt AC 28 ms 1432 KB
02_rndhard_19.txt AC 28 ms 1432 KB
02_rndhard_20.txt AC 28 ms 1240 KB
02_rndhard_21.txt AC 28 ms 1432 KB
02_rndhard_22.txt AC 27 ms 1312 KB
02_rndhard_23.txt AC 27 ms 1316 KB
02_rndhard_24.txt AC 27 ms 1324 KB
02_rndhard_25.txt AC 27 ms 1316 KB
02_rndhard_26.txt AC 27 ms 1312 KB
02_rndhard_27.txt AC 28 ms 1436 KB
02_rndhard_28.txt AC 27 ms 1320 KB
02_rndhard_29.txt AC 28 ms 1216 KB
02_rndhard_30.txt AC 28 ms 1316 KB
02_rndhard_31.txt AC 28 ms 1308 KB
02_rndhard_32.txt AC 28 ms 1320 KB
02_rndhard_33.txt AC 30 ms 1320 KB
02_rndhard_34.txt AC 28 ms 1312 KB
02_rndhard_35.txt AC 28 ms 1312 KB
02_rndhard_36.txt AC 28 ms 1436 KB
02_rndhard_37.txt AC 27 ms 1316 KB
02_rndhard_38.txt AC 27 ms 1316 KB
02_rndhard_39.txt AC 28 ms 1440 KB
03_rndhardsmall_00.txt AC 26 ms 1064 KB
03_rndhardsmall_01.txt AC 26 ms 1176 KB
03_rndhardsmall_02.txt AC 27 ms 1048 KB
03_rndhardsmall_03.txt AC 27 ms 1048 KB
03_rndhardsmall_04.txt AC 27 ms 1176 KB
03_rndhardsmall_05.txt AC 27 ms 1056 KB
03_rndhardsmall_06.txt AC 28 ms 1180 KB
03_rndhardsmall_07.txt AC 28 ms 1180 KB
03_rndhardsmall_08.txt AC 28 ms 1056 KB
03_rndhardsmall_09.txt AC 28 ms 1176 KB