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 |
|
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 |