AtCoder Typical Contest 001

Submission #7138058

Source codeソースコード

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <string>
#include <math.h>
#include <stdio.h>
#include <iomanip>
#include <limits>
#include <list>
#include <queue>
#include <deque>
#include <tuple>
#include <map>
#include <sstream>
using namespace std;
#define MOD (long long int)(1e9+7)
#define ll long long int
#define rep(i,n) for(int i=0; i<(int)(n); i++)
#define reps(i,n) for(int i=1; i<=(int)(n); i++)
#define REP(i,n) for(int i=n-1; i>=0; i--)
#define REPS(i,n) for(int i=n; i>0; i--)
#define FOR(i,a,b) for(int i=a; i<(int)(b); i++)
#define ALL(x) (x).begin(),(x).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define SORT(c) sort(ALL(x))
#define CLR(a) memset((a), 0 ,sizeof(a))
#define PB push_back
#define MP make_pair
#define SP << " " <<
const int INF = 1001001001;
const ll LINF = 100100100100100100;
const double EPS = 1e-10;
const double PI  = acos(-1.0);
typedef pair<int,int> PII;
typedef vector<int> VI;
typedef vector<VI> VVI;

template<typename A, size_t N, typename T>
void Fill(A (&array)[N], const T &val){
    std::fill( (T*)array, (T*)(array+N), val );
}
__attribute__((constructor))
void initial(){
	cin.tie(nullptr);
	ios::sync_with_stdio(false);
	cout << fixed << setprecision(15);
}

const int lim = 505;
int h, w;
string c[lim];
int dx[4]={1,0,-1,0}, dy[4]={0,1,0,-1};
int sx, sy;
bool visited[lim][lim];

bool dfs(int x, int y){
  visited[y][x] = true;
  rep(i,4){
    int nx=x+dx[i], ny=y+dy[i]; // それぞれ1移動した方向にDFS
    if(nx<0||nx>=w||ny<0||ny>=h) continue; // 場外は考えない
    if(c[ny][nx]=='.'){ // もし隣が道なら
      if(visited[ny][nx]) continue; // すでに探索済みならスルー
      visited[ny][nx] = true;
      if(dfs(nx, ny)) return true; // 初めて訪れるならその座標に対してDFS
    }
    if(c[ny][nx]=='g') return true; // goalに到達したらtrue
  }
  return false; // 探索し終えてしまったらfalse
}

signed main(){
  cin>>h>>w;
  rep(i,h) cin>>c[i];
  rep(i,h){
    rep(j,w){
      if(c[i][j]=='s') sy=i,sx=j;
      visited[i][j] = false;
    }
  }

  bool ans = dfs(sx,sy);
  if(ans) cout << "Yes" << endl;
  else cout << "No" << endl;
  return 0;
}

Submission

Task問題 A - 深さ優先探索
User nameユーザ名 m_9719
Created time投稿日時
Language言語 C++14 (GCC 5.4.1)
Status状態 AC
Score得点 100
Source lengthソースコード長 2298 Byte
File nameファイル名
Exec time実行時間 12 ms
Memory usageメモリ使用量 17024 KB

Test case

Set

Set name Score得点 / Max score Cases
Sample - 00_sample_01.txt,00_sample_02.txt,00_sample_03.txt,00_sample_04.txt,00_sample_05.txt
All 100 / 100 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

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
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 768 KB
01_rnd_01.txt AC 4 ms 4608 KB
01_rnd_02.txt AC 5 ms 4096 KB
01_rnd_03.txt AC 8 ms 10496 KB
01_rnd_04.txt AC 11 ms 13824 KB
01_rnd_05.txt AC 2 ms 768 KB
01_rnd_06.txt AC 9 ms 4608 KB
01_rnd_07.txt AC 3 ms 2176 KB
01_rnd_08.txt AC 2 ms 768 KB
01_rnd_09.txt AC 2 ms 768 KB
01_rnd_10.txt AC 6 ms 1536 KB
01_rnd_11.txt AC 2 ms 768 KB
01_rnd_12.txt AC 4 ms 3712 KB
01_rnd_13.txt AC 8 ms 8704 KB
01_rnd_14.txt AC 2 ms 768 KB
01_rnd_15.txt AC 6 ms 3200 KB
01_rnd_16.txt AC 2 ms 768 KB
01_rnd_17.txt AC 7 ms 2432 KB
01_rnd_18.txt AC 2 ms 768 KB
01_rnd_19.txt AC 12 ms 17024 KB
02_rndhard_00.txt AC 2 ms 768 KB
02_rndhard_01.txt AC 2 ms 768 KB
02_rndhard_02.txt AC 3 ms 896 KB
02_rndhard_03.txt AC 3 ms 896 KB
02_rndhard_04.txt AC 2 ms 768 KB
02_rndhard_05.txt AC 2 ms 768 KB
02_rndhard_06.txt AC 2 ms 768 KB
02_rndhard_07.txt AC 2 ms 768 KB
02_rndhard_08.txt AC 2 ms 768 KB
02_rndhard_09.txt AC 2 ms 768 KB
02_rndhard_10.txt AC 2 ms 768 KB
02_rndhard_11.txt AC 2 ms 768 KB
02_rndhard_12.txt AC 2 ms 768 KB
02_rndhard_13.txt AC 2 ms 768 KB
02_rndhard_14.txt AC 2 ms 896 KB
02_rndhard_15.txt AC 2 ms 896 KB
02_rndhard_16.txt AC 2 ms 768 KB
02_rndhard_17.txt AC 2 ms 768 KB
02_rndhard_18.txt AC 2 ms 768 KB
02_rndhard_19.txt AC 2 ms 768 KB
02_rndhard_20.txt AC 2 ms 768 KB
02_rndhard_21.txt AC 2 ms 768 KB
02_rndhard_22.txt AC 2 ms 896 KB
02_rndhard_23.txt AC 2 ms 896 KB
02_rndhard_24.txt AC 2 ms 768 KB
02_rndhard_25.txt AC 2 ms 768 KB
02_rndhard_26.txt AC 2 ms 768 KB
02_rndhard_27.txt AC 2 ms 768 KB
02_rndhard_28.txt AC 2 ms 768 KB
02_rndhard_29.txt AC 2 ms 768 KB
02_rndhard_30.txt AC 2 ms 768 KB
02_rndhard_31.txt AC 2 ms 768 KB
02_rndhard_32.txt AC 2 ms 768 KB
02_rndhard_33.txt AC 2 ms 768 KB
02_rndhard_34.txt AC 2 ms 768 KB
02_rndhard_35.txt AC 2 ms 768 KB
02_rndhard_36.txt AC 2 ms 768 KB
02_rndhard_37.txt AC 2 ms 768 KB
02_rndhard_38.txt AC 2 ms 768 KB
02_rndhard_39.txt AC 2 ms 768 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