Submission #163367


Source Code Expand

//
//  main.cpp
//  ARCH
//
//  Created by 鹿島 悠 on 2014/04/20.
//  Copyright (c) 2014年 鹿島 悠. All rights reserved.
//

#include <iostream>
#include <queue>
#include <set>
#include <string>


using namespace std;

int R,C,sx,sy,gy,gx;

int main(int argc, const char * argv[])
{

    cin >> R >> C >> sy >> sx >> gy >> gx;
    sx--;sy--;gx--;gy--;

    //cout << R << C << sy << sx << gy << gx << endl;

    string c[R];
    int dp[R][C];
    int INF = 10000000;
    for (int i=0; i < R; i++)
    	for (int j=0;j<C;j++)
    		dp[i][j] = INF;

    for (int i=0; i < R; i++)
        cin >> c[i];

    queue< pair<int, int> > que;

    que.push(make_pair(sy, sx));
    dp[sy][sx] = 0;


    int vx[4] = { -1, 0, 1, 0 };
    int vy[4] = { 0,  1, 0, -1 };

    //cout << R << C << sy << sx << gy << gx << endl;

    while (!que.empty()) {
    	auto cur = que.front();

    	que.pop();
    	auto cur_step = dp[cur.first][cur.second];


    	for (int i=0; i < 4; i++) {
    		auto ny = vy[i] + cur.first;
    		auto nx = vx[i] + cur.second;

    		//cout << ny << ' ' << nx << endl;
    		if (ny == gy && nx == gx) {
    			cout << cur_step+1 << endl;
    			return 0;
    		}
    		else if (ny >= 0 && nx >= 0 && ny < R && nx < C && c[ny][nx] != '#') {
    			auto next = make_pair(ny, nx);
    			if (dp[ny][nx] == INF) {
    				dp[ny][nx] = cur_step+1;
    				que.push(next);
    			}
    		}
    	}
    }



    cout << -1 << endl;
    return 0;
}

Submission Info

Submission Time
Task C - 幅優先探索
User nida_001
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1536 Byte
Status AC
Exec Time 24 ms
Memory 924 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 25
Set Name Test Cases
Sample subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt
All subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt
Case Name Status Exec Time Memory
subtask0_sample01.txt AC 23 ms 916 KB
subtask0_sample02.txt AC 22 ms 796 KB
subtask0_sample03.txt AC 22 ms 804 KB
subtask1_01.txt AC 23 ms 924 KB
subtask1_02.txt AC 23 ms 788 KB
subtask1_03.txt AC 23 ms 920 KB
subtask1_04.txt AC 22 ms 920 KB
subtask1_05.txt AC 21 ms 800 KB
subtask1_06.txt AC 22 ms 924 KB
subtask1_07.txt AC 21 ms 876 KB
subtask1_08.txt AC 23 ms 916 KB
subtask1_09.txt AC 22 ms 916 KB
subtask1_10.txt AC 23 ms 804 KB
subtask1_11.txt AC 23 ms 920 KB
subtask1_12.txt AC 23 ms 916 KB
subtask1_13.txt AC 22 ms 808 KB
subtask1_14.txt AC 23 ms 796 KB
subtask1_15.txt AC 22 ms 916 KB
subtask1_16.txt AC 24 ms 920 KB
subtask1_17.txt AC 24 ms 924 KB
subtask1_18.txt AC 22 ms 916 KB
subtask1_19.txt AC 22 ms 920 KB
subtask1_20.txt AC 20 ms 920 KB
subtask1_21.txt AC 23 ms 812 KB
subtask1_22.txt AC 24 ms 920 KB