Submission #528350


Source Code Expand

/*{{{*/
#include <cassert>
#include <cctype>
#include <climits>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <functional>
#include <bitset>
#include <deque>
#include <list>
#include <map>
#include <queue>
#include <set>
#include <tuple>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
typedef int8_t sbyte;
typedef uint8_t byte;
typedef uint16_t ushort;
typedef uint32_t uint;
typedef int64_t i64;
typedef uint64_t u64;
template<class T> static inline T ABS(T x) {return x < 0 ? -x : x;}
template<class T> static inline void MAZ(T &a, const T &b) {if(a < b) a = b;}
template<class T> static inline void MIZ(T &a, const T &b) {if(b < a) a = b;}
/*}}}*/

const auto NMAX = 1000;

int N;
char M[NMAX][NMAX + 1];
bool W[NMAX][NMAX];
int  C[NMAX][NMAX];
vector<pair<int, int>> S;

static inline void update(int i, int j) {
	W[i][j] = true;
	S.emplace_back(i, j);
}

int main() {
	static const int dir[4][2] = {{-1, 0}, {0, -1}, {0, +1}, {+1, 0}};
	scanf("%d", &N);
	for(auto i = 0; i < N; i++) scanf("%s", M[i]);
	update(N - 1, N - 1);
	while(!S.empty()) {
		auto i = S.back().first;
		auto j = S.back().second;
		S.pop_back();
		for(auto k = 0; k < 4; k++) {
			auto ii = i + dir[k][0]; if(ii < 0 || ii >= N) continue;
			auto jj = j + dir[k][1]; if(jj < 0 || jj >= N) continue;
			if(W[ii][jj]) continue;
			if(M[i][j] != '.' || ++C[ii][jj] > 1) update(ii, jj);
		}
	}
	puts(W[0][0] ? "YES" : "NO");
	return 0;
}

Submission Info

Submission Time
Task I - Obstruction
User arosusti
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1651 Byte
Status AC
Exec Time 102 ms
Memory 8840 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:52:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &N);
                 ^
./Main.cpp:53:47: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  for(auto i = 0; i < N; i++) scanf("%s", M[i]);
                                               ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 65
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All manual_j1.txt, manual_j10.txt, manual_j11.txt, manual_j12.txt, manual_j13.txt, manual_j14.txt, manual_j15.txt, manual_j16.txt, manual_j17.txt, manual_j18.txt, manual_j19.txt, manual_j2.txt, manual_j20.txt, manual_j21.txt, manual_j22.txt, manual_j23.txt, manual_j24.txt, manual_j25.txt, manual_j26.txt, manual_j27.txt, manual_j28.txt, manual_j29.txt, manual_j3.txt, manual_j30.txt, manual_j31.txt, manual_j32.txt, manual_j33.txt, manual_j34.txt, manual_j4.txt, manual_j5.txt, manual_j6.txt, manual_j7.txt, manual_j8.txt, manual_j9.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, scale_01.txt, scale_02.txt, scale_03.txt, scale_04.txt, scale_05.txt, scale_small_01.txt, scale_small_02.txt, scale_small_03.txt, scale_small_04.txt, scale_small_05.txt, scale_small_06.txt
Case Name Status Exec Time Memory
manual_j1.txt AC 33 ms 1340 KB
manual_j10.txt AC 32 ms 1224 KB
manual_j11.txt AC 33 ms 1224 KB
manual_j12.txt AC 33 ms 1156 KB
manual_j13.txt AC 31 ms 1148 KB
manual_j14.txt AC 33 ms 1224 KB
manual_j15.txt AC 32 ms 1272 KB
manual_j16.txt AC 33 ms 1532 KB
manual_j17.txt AC 33 ms 1528 KB
manual_j18.txt AC 32 ms 1400 KB
manual_j19.txt AC 31 ms 1276 KB
manual_j2.txt AC 32 ms 1260 KB
manual_j20.txt AC 31 ms 1200 KB
manual_j21.txt AC 34 ms 1300 KB
manual_j22.txt AC 33 ms 1296 KB
manual_j23.txt AC 33 ms 1148 KB
manual_j24.txt AC 33 ms 1180 KB
manual_j25.txt AC 32 ms 1296 KB
manual_j26.txt AC 33 ms 1172 KB
manual_j27.txt AC 34 ms 1148 KB
manual_j28.txt AC 33 ms 1276 KB
manual_j29.txt AC 31 ms 1184 KB
manual_j3.txt AC 31 ms 1424 KB
manual_j30.txt AC 32 ms 1144 KB
manual_j31.txt AC 30 ms 1176 KB
manual_j32.txt AC 33 ms 1304 KB
manual_j33.txt AC 32 ms 1280 KB
manual_j34.txt AC 34 ms 1280 KB
manual_j4.txt AC 34 ms 1404 KB
manual_j5.txt AC 34 ms 1304 KB
manual_j6.txt AC 33 ms 1420 KB
manual_j7.txt AC 33 ms 1288 KB
manual_j8.txt AC 33 ms 1284 KB
manual_j9.txt AC 32 ms 1176 KB
random_01.txt AC 34 ms 1816 KB
random_02.txt AC 33 ms 1532 KB
random_03.txt AC 33 ms 1560 KB
random_04.txt AC 33 ms 1660 KB
random_05.txt AC 34 ms 1788 KB
random_06.txt AC 35 ms 1792 KB
random_07.txt AC 36 ms 2032 KB
random_08.txt AC 37 ms 1936 KB
random_09.txt AC 38 ms 2048 KB
random_10.txt AC 102 ms 7812 KB
random_11.txt AC 35 ms 1904 KB
random_12.txt AC 40 ms 2436 KB
random_13.txt AC 42 ms 3112 KB
random_14.txt AC 47 ms 3732 KB
random_15.txt AC 54 ms 4496 KB
random_16.txt AC 62 ms 5244 KB
random_17.txt AC 71 ms 5884 KB
random_18.txt AC 78 ms 6704 KB
random_19.txt AC 89 ms 7412 KB
random_20.txt AC 102 ms 8444 KB
sample_01.txt AC 34 ms 1148 KB
sample_02.txt AC 32 ms 1268 KB
sample_03.txt AC 33 ms 1280 KB
scale_01.txt AC 85 ms 7548 KB
scale_02.txt AC 90 ms 8840 KB
scale_03.txt AC 60 ms 6796 KB
scale_04.txt AC 78 ms 7080 KB
scale_05.txt AC 58 ms 5520 KB
scale_small_01.txt AC 43 ms 2816 KB
scale_small_02.txt AC 42 ms 2932 KB
scale_small_03.txt AC 42 ms 3068 KB
scale_small_04.txt AC 38 ms 2432 KB
scale_small_05.txt AC 42 ms 3088 KB
scale_small_06.txt AC 41 ms 2296 KB