Submission #1500859


Source Code Expand

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <algorithm>
#include <utility>
#include <functional>
#include <cstring>
#include <queue>
#include <stack>
#include <math.h>
#include <iterator>
#include <vector>
#include <string>
#include <set>
#include <math.h>
#include <iostream> 
#include <random>
#include<map>
#include <iomanip>
#include <time.h>
#include <stdlib.h>
#include <list>
#include <typeinfo>
#include <list>
#include <set>
#include <cassert>
#include<fstream>
#include <unordered_map>  
using namespace std;
#define eps 0.00000001
#define LONG_INF 10000000000000000
#define GOLD 1.61803398874989484820458
#define MAX_MOD 1000000007
#define REP(i,n) for(long long i = 0;i < n;++i)
int distances[100][100] = {};
int grid[100][100] = {};
int main() {
	int a,b;
	cin >> a >> b;
	queue<pair<int, int>> wow;
	int c, d;
	cin >> c >> d;
	wow.push(make_pair(c, d));
	int e, f;
	cin >> e >> f;
	REP(i, a) {
		string s;
		cin >> s;
		REP(q, b) {
			if (s[q] == '#') {
				grid[i+1][q+1] = 1;
			}
		}
	}
	while (wow.empty() == false) {
		pair<int, int> now = wow.front();wow.pop();
		if (grid[now.first + 1][now.second] == 0) {
			if (distances[now.first + 1][now.second] == 0) {
				distances[now.first + 1][now.second] = distances[now.first][now.second] + 1;
				wow.push(make_pair(now.first + 1, now.second));
			}
		}
		if (grid[now.first - 1][now.second] == 0) {
			if (distances[now.first - 1][now.second] == 0) {
				distances[now.first - 1][now.second] = distances[now.first][now.second] + 1;
				wow.push(make_pair(now.first - 1, now.second));
			}
		}
		if (grid[now.first][now.second+1] == 0) {
			if (distances[now.first][now.second+1] == 0) {
				distances[now.first][now.second+1] = distances[now.first][now.second] + 1;
				wow.push(make_pair(now.first, now.second+1));
			}
		}
		if (grid[now.first][now.second - 1] == 0) {
			if (distances[now.first][now.second - 1] == 0) {
				distances[now.first][now.second - 1] = distances[now.first][now.second] + 1;
				wow.push(make_pair(now.first, now.second - 1));
			}
		}
	}
	distances[c][d] = 0;
	cout << distances[e][f] << endl;
	return 0;
}

Submission Info

Submission Time
Task C - 幅優先探索
User kotamanegi
Language C++14 (Clang 3.8.0)
Score 100
Code Size 2205 Byte
Status AC
Exec Time 1 ms
Memory 256 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 1 ms 256 KB
subtask0_sample02.txt AC 1 ms 256 KB
subtask0_sample03.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 1 ms 256 KB
subtask1_04.txt AC 1 ms 256 KB
subtask1_05.txt AC 1 ms 256 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt AC 1 ms 256 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt AC 1 ms 256 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 1 ms 256 KB
subtask1_13.txt AC 1 ms 256 KB
subtask1_14.txt AC 1 ms 256 KB
subtask1_15.txt AC 1 ms 256 KB
subtask1_16.txt AC 1 ms 256 KB
subtask1_17.txt AC 1 ms 256 KB
subtask1_18.txt AC 1 ms 256 KB
subtask1_19.txt AC 1 ms 256 KB
subtask1_20.txt AC 1 ms 256 KB
subtask1_21.txt AC 1 ms 256 KB
subtask1_22.txt AC 1 ms 256 KB