Submission #2117238


Source Code Expand

//ATP001-a
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <numeric>
#include <functional>
using namespace std;

#define Rep(b, e, i) for(int i = b; i <= e; i++)
#define rep(n, i) Rep(0, n-1, i)
#define MAX 501
#define INF (ll)1e10
#define MOD 1000000007

typedef long long ll;
typedef pair<ll, ll> P;

int dx4[4]={1,0,-1,0};
int dy4[4]={0,1,0,-1};

ll R, C;
ll sx, sy;
ll gx, gy;
char map[MAX][MAX];
bool visited[MAX][MAX];

void dfs(){
    stack<P> Stack;
    //初期化
    rep(R, y) rep(C, x) visited[y][x] = false;

    Stack.push(P(sx, sy));
    while (Stack.size()) {
        P p = Stack.top(); Stack.pop();
        visited[p.second][p.first] = true;
        if (p.first == gx and p.second == gy) break;
        rep (4, i) {
            ll nx = p.first + dx4[i];
            ll ny = p.second + dy4[i];
            if (nx >= 0 && nx < C && ny >= 0 && ny < R){
                if (map[ny][nx] != '#' && !visited[ny][nx]) {
                    Stack.push(P(nx, ny));
                }
            }
        }
    }
}

void solve(void){
    cin >> R >> C;
    rep(R, i) scanf("%s\n", &map[i]);
    rep(R, y) rep(C, x) {
        if (map[y][x] == 's') {
            sx = x, sy = y;
        }
        if (map[y][x] == 'g') {
            gx = x, gy = y;
        }
    }
    dfs();
    /*
    cout << sx << ' ' << sy << endl;
    cout << gx << ' ' << gy << endl;
    rep(R, y) {
        rep(C, x) {
            cout << visited[y][x];
        }
        cout << endl;
    }
    */
    cout << (visited[gy][gx] ? "Yes" : "No") << endl;
}

int main(void){
  solve();
  return 0;
}

Submission Info

Submission Time
Task A - 深さ優先探索
User sifi_border
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1766 Byte
Status AC
Exec Time 11 ms
Memory 3584 KB

Compile Error

./Main.cpp: In function ‘void solve()’:
./Main.cpp:56:36: warning: format ‘%s’ expects argument of type ‘char*’, but argument 2 has type ‘char (*)[501]’ [-Wformat=]
     rep(R, i) scanf("%s\n", &map[i]);
                                    ^
./Main.cpp:56:37: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     rep(R, i) scanf("%s\n", &map[i]);
                                     ^

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 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 8 ms 3072 KB
01_rnd_02.txt AC 6 ms 1408 KB
01_rnd_03.txt AC 8 ms 3584 KB
01_rnd_04.txt AC 11 ms 3584 KB
01_rnd_05.txt AC 2 ms 768 KB
01_rnd_06.txt AC 6 ms 1152 KB
01_rnd_07.txt AC 6 ms 1408 KB
01_rnd_08.txt AC 2 ms 768 KB
01_rnd_09.txt AC 2 ms 768 KB
01_rnd_10.txt AC 7 ms 768 KB
01_rnd_11.txt AC 2 ms 768 KB
01_rnd_12.txt AC 9 ms 2688 KB
01_rnd_13.txt AC 10 ms 2560 KB
01_rnd_14.txt AC 2 ms 768 KB
01_rnd_15.txt AC 3 ms 768 KB
01_rnd_16.txt AC 2 ms 768 KB
01_rnd_17.txt AC 9 ms 896 KB
01_rnd_18.txt AC 2 ms 768 KB
01_rnd_19.txt AC 3 ms 768 KB
02_rndhard_00.txt AC 3 ms 768 KB
02_rndhard_01.txt AC 3 ms 768 KB
02_rndhard_02.txt AC 4 ms 768 KB
02_rndhard_03.txt AC 4 ms 768 KB
02_rndhard_04.txt AC 2 ms 768 KB
02_rndhard_05.txt AC 3 ms 768 KB
02_rndhard_06.txt AC 3 ms 768 KB
02_rndhard_07.txt AC 2 ms 768 KB
02_rndhard_08.txt AC 3 ms 768 KB
02_rndhard_09.txt AC 3 ms 768 KB
02_rndhard_10.txt AC 3 ms 768 KB
02_rndhard_11.txt AC 3 ms 768 KB
02_rndhard_12.txt AC 3 ms 768 KB
02_rndhard_13.txt AC 3 ms 768 KB
02_rndhard_14.txt AC 3 ms 768 KB
02_rndhard_15.txt AC 3 ms 768 KB
02_rndhard_16.txt AC 3 ms 768 KB
02_rndhard_17.txt AC 3 ms 768 KB
02_rndhard_18.txt AC 3 ms 768 KB
02_rndhard_19.txt AC 3 ms 768 KB
02_rndhard_20.txt AC 3 ms 768 KB
02_rndhard_21.txt AC 3 ms 768 KB
02_rndhard_22.txt AC 3 ms 768 KB
02_rndhard_23.txt AC 3 ms 768 KB
02_rndhard_24.txt AC 3 ms 768 KB
02_rndhard_25.txt AC 3 ms 768 KB
02_rndhard_26.txt AC 3 ms 768 KB
02_rndhard_27.txt AC 2 ms 768 KB
02_rndhard_28.txt AC 3 ms 768 KB
02_rndhard_29.txt AC 3 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 3 ms 768 KB
02_rndhard_33.txt AC 3 ms 768 KB
02_rndhard_34.txt AC 3 ms 768 KB
02_rndhard_35.txt AC 3 ms 768 KB
02_rndhard_36.txt AC 3 ms 768 KB
02_rndhard_37.txt AC 3 ms 768 KB
02_rndhard_38.txt AC 3 ms 768 KB
02_rndhard_39.txt AC 3 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