Submission #162119
Source Code Expand
#include <iostream>
#include <iomanip>
#include <sstream>
#include <vector>
#include <string>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <functional>
#include <iterator>
#include <limits>
#include <numeric>
#include <utility>
#include <cmath>
using namespace std;
using LL = long long;
using ULL = unsigned long long;
using VI = vector<int>;
using VVI = vector<VI>;
using VS = vector<string>;
using SS = stringstream;
using PII = pair<int,int>;
using VPII = vector< pair<int,int> >;
template < typename T = int > using VT = vector<T>;
template < typename T = int > using VVT = VT< VT<T> >;
template < typename T = int > using LIM = numeric_limits<T>;
template < typename T > inline T fromString( const string &s ){ T res; istringstream iss( s ); iss >> res; return res; };
template < typename T > inline string toString( const T &a ){ ostringstream oss; oss << a; return oss.str(); };
#define REP( i, m, n ) for ( int i = (int)( m ); i < (int)( n ); ++i )
#define FOR( e, c ) for ( auto &e : c )
#define ALL( c ) (c).begin(), (c).end()
#define AALL( a, t ) (t*)a, (t*)a + sizeof( a ) / sizeof( t )
#define DRANGE( c, p ) (c).begin(), (c).begin() + p, (c).end()
#define PB( n ) push_back( n )
#define MP( a, b ) make_pair( ( a ), ( b ) )
#define EXIST( c, e ) ( (c).find( e ) != (c).end() )
#define fst first
#define snd second
#define DUMP( x ) cerr << #x << " = " << ( x ) << endl
constexpr int dy[] = { 1, 0, -1, 0 };
constexpr int dx[] = { 0, 1, 0, -1 };
int main()
{
cin.tie( 0 );
ios::sync_with_stdio( false );
int h, w, sy, sx, gy, gx;
cin >> h >> w >> sy >> sx >> gy >> gx;
VS board( h );
FOR( row, board )
{
cin >> row;
}
queue<PII> que;
que.push( MP( sy - 1, sx - 1 ) );
VVI distances( h, VI( w, LIM<>::max() ) );
distances[ sy - 1 ][ sx - 1 ] = 0;
while ( !que.empty() )
{
const PII cur = que.front();
que.pop();
REP( d, 0, 4 )
{
const PII next( cur.fst + dy[d], cur.snd + dx[d] );
if ( board[ next.fst ][ next.snd ] == '.' && distances[ cur.fst ][ cur.snd ] + 1 < distances[ next.fst ][ next.snd ] )
{
distances[ next.fst ][ next.snd ] = distances[ cur.fst ][ cur.snd ] + 1;
que.push( next );
}
}
}
cout << distances[ gy - 1 ][ gx - 1 ] << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
C - 幅優先探索 |
User |
torus711 |
Language |
C++11 (GCC 4.8.1) |
Score |
100 |
Code Size |
2380 Byte |
Status |
AC |
Exec Time |
25 ms |
Memory |
924 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 |
25 ms |
924 KB |
subtask0_sample02.txt |
AC |
23 ms |
920 KB |
subtask0_sample03.txt |
AC |
21 ms |
808 KB |
subtask1_01.txt |
AC |
21 ms |
916 KB |
subtask1_02.txt |
AC |
21 ms |
924 KB |
subtask1_03.txt |
AC |
23 ms |
916 KB |
subtask1_04.txt |
AC |
21 ms |
844 KB |
subtask1_05.txt |
AC |
23 ms |
920 KB |
subtask1_06.txt |
AC |
22 ms |
804 KB |
subtask1_07.txt |
AC |
22 ms |
920 KB |
subtask1_08.txt |
AC |
21 ms |
920 KB |
subtask1_09.txt |
AC |
23 ms |
916 KB |
subtask1_10.txt |
AC |
20 ms |
920 KB |
subtask1_11.txt |
AC |
22 ms |
916 KB |
subtask1_12.txt |
AC |
22 ms |
916 KB |
subtask1_13.txt |
AC |
20 ms |
916 KB |
subtask1_14.txt |
AC |
23 ms |
816 KB |
subtask1_15.txt |
AC |
19 ms |
912 KB |
subtask1_16.txt |
AC |
22 ms |
924 KB |
subtask1_17.txt |
AC |
22 ms |
916 KB |
subtask1_18.txt |
AC |
21 ms |
912 KB |
subtask1_19.txt |
AC |
23 ms |
916 KB |
subtask1_20.txt |
AC |
22 ms |
920 KB |
subtask1_21.txt |
AC |
22 ms |
804 KB |
subtask1_22.txt |
AC |
20 ms |
912 KB |