Submission #420563


Source Code Expand

//include
//------------------------------------------
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <ctime>
#include <climits>
#include <queue>

using namespace std;

//typedef
//------------------------------------------
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<string> VS;
typedef pair<int, int> PII;
typedef long long LL;

//container util
//------------------------------------------
#define ALL(a)  (a).begin(),(a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define PB push_back
#define MP make_pair
#define SZ(a) int((a).size())
#define EACH(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); ++i)
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define SORT(c) sort((c).begin(),(c).end())

//repetition
//------------------------------------------
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define REP(i,n)  FOR(i,0,n)

//constant
//--------------------------------------------
const double EPS = 1e-10;
const double PI  = acos(-1.0);

int dx[4] = {-1,0,1,0};
int dy[4] = {0,-1,0,1};
int main(){
  cin.tie(0);
  ios_base::sync_with_stdio(false);

  int H, W; cin >> H >> W;
  VS vs(H);
  REP(i,H) cin >> vs[i];
  REP(i,H) vs[i] = "#" + vs[i] + "#";
  vs.insert(vs.begin(), string(SZ(vs[0]), '#'));
  vs.PB(string(SZ(vs[0]), '#'));
  //  for(auto& s: vs) cout<<s<<endl;

  W += 2, H += 2;
  int sx, sy, gx, gy;
  REP(y,H) REP(x,W)
	if(vs[y][x] == 's') sx = x, sy = y;
	else if(vs[y][x] == 'g') gx = x, gy = y;

  queue<PII> q;
  set<PII> s;
  q.push(MP(sx,sy));
  s.insert(MP(sx,sy));
  while(!q.empty()){
	PII p = q.front(); q.pop();
	REP(i,4){
	  PII t = p;
	  t.first += dx[i];
	  t.second += dy[i];
	  if(vs[t.second][t.first] == '#') continue;
	  if(!s.count(t)) q.push(t), s.insert(t);
	}
  }
  cout << (s.count(MP(gx,gy))? "Yes": "No") << endl;
  
  return 0;
}

Submission Info

Submission Time
Task A - 深さ優先探索
User okaduki
Language C++ (GCC 4.9.2)
Score 100
Code Size 2229 Byte
Status AC
Exec Time 430 ms
Memory 12828 KB

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 30 ms 924 KB
00_min_02.txt AC 26 ms 808 KB
00_min_03.txt AC 24 ms 796 KB
00_min_04.txt AC 26 ms 928 KB
00_min_05.txt AC 26 ms 920 KB
00_min_06.txt AC 27 ms 796 KB
00_min_07.txt AC 27 ms 740 KB
00_min_08.txt AC 27 ms 920 KB
00_sample_01.txt AC 29 ms 800 KB
00_sample_02.txt AC 27 ms 920 KB
00_sample_03.txt AC 28 ms 916 KB
00_sample_04.txt AC 29 ms 804 KB
00_sample_05.txt AC 27 ms 804 KB
01_rnd_00.txt AC 30 ms 1436 KB
01_rnd_01.txt AC 385 ms 12072 KB
01_rnd_02.txt AC 264 ms 9252 KB
01_rnd_03.txt AC 409 ms 12828 KB
01_rnd_04.txt AC 365 ms 11812 KB
01_rnd_05.txt AC 29 ms 1320 KB
01_rnd_06.txt AC 259 ms 8872 KB
01_rnd_07.txt AC 263 ms 9500 KB
01_rnd_08.txt AC 34 ms 1316 KB
01_rnd_09.txt AC 35 ms 1312 KB
01_rnd_10.txt AC 164 ms 6304 KB
01_rnd_11.txt AC 29 ms 1308 KB
01_rnd_12.txt AC 321 ms 10912 KB
01_rnd_13.txt AC 315 ms 10656 KB
01_rnd_14.txt AC 31 ms 1428 KB
01_rnd_15.txt AC 230 ms 7972 KB
01_rnd_16.txt AC 29 ms 1444 KB
01_rnd_17.txt AC 204 ms 7588 KB
01_rnd_18.txt AC 30 ms 1440 KB
01_rnd_19.txt AC 430 ms 12712 KB
02_rndhard_00.txt AC 31 ms 1312 KB
02_rndhard_01.txt AC 31 ms 1320 KB
02_rndhard_02.txt AC 56 ms 2476 KB
02_rndhard_03.txt AC 92 ms 2432 KB
02_rndhard_04.txt AC 32 ms 1244 KB
02_rndhard_05.txt AC 30 ms 1316 KB
02_rndhard_06.txt AC 30 ms 1428 KB
02_rndhard_07.txt AC 42 ms 1320 KB
02_rndhard_08.txt AC 35 ms 1572 KB
02_rndhard_09.txt AC 34 ms 1576 KB
02_rndhard_10.txt AC 34 ms 1560 KB
02_rndhard_11.txt AC 36 ms 1568 KB
02_rndhard_12.txt AC 33 ms 1404 KB
02_rndhard_13.txt AC 33 ms 1444 KB
02_rndhard_14.txt AC 35 ms 1568 KB
02_rndhard_15.txt AC 35 ms 1576 KB
02_rndhard_16.txt AC 29 ms 1316 KB
02_rndhard_17.txt AC 31 ms 1320 KB
02_rndhard_18.txt AC 30 ms 1316 KB
02_rndhard_19.txt AC 29 ms 1316 KB
02_rndhard_20.txt AC 31 ms 1316 KB
02_rndhard_21.txt AC 31 ms 1432 KB
02_rndhard_22.txt AC 33 ms 1436 KB
02_rndhard_23.txt AC 32 ms 1444 KB
02_rndhard_24.txt AC 31 ms 1288 KB
02_rndhard_25.txt AC 31 ms 1440 KB
02_rndhard_26.txt AC 31 ms 1304 KB
02_rndhard_27.txt AC 31 ms 1324 KB
02_rndhard_28.txt AC 32 ms 1316 KB
02_rndhard_29.txt AC 30 ms 1308 KB
02_rndhard_30.txt AC 29 ms 1312 KB
02_rndhard_31.txt AC 30 ms 1440 KB
02_rndhard_32.txt AC 33 ms 1436 KB
02_rndhard_33.txt AC 36 ms 1376 KB
02_rndhard_34.txt AC 31 ms 1316 KB
02_rndhard_35.txt AC 29 ms 1304 KB
02_rndhard_36.txt AC 30 ms 1312 KB
02_rndhard_37.txt AC 30 ms 1324 KB
02_rndhard_38.txt AC 32 ms 1372 KB
02_rndhard_39.txt AC 31 ms 1308 KB
03_rndhardsmall_00.txt AC 29 ms 756 KB
03_rndhardsmall_01.txt AC 26 ms 928 KB
03_rndhardsmall_02.txt AC 25 ms 800 KB
03_rndhardsmall_03.txt AC 25 ms 808 KB
03_rndhardsmall_04.txt AC 26 ms 924 KB
03_rndhardsmall_05.txt AC 26 ms 916 KB
03_rndhardsmall_06.txt AC 29 ms 764 KB
03_rndhardsmall_07.txt AC 26 ms 796 KB
03_rndhardsmall_08.txt AC 26 ms 932 KB
03_rndhardsmall_09.txt AC 28 ms 928 KB