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 |
|
|
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 |