Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#include
#include
#include
#include
#include
#include
#include
#define ll long long #define ld long double #define fi first #define se second #define mp make_pair #define pb push_back #define eb emplace_back #define all(x) (x).begin(), (x).end() #define INF 1e18 #define eps 0.00001 #define le length #define MOD 1000000007 using namespace std; ll memo[2005][2005]; int prices[1005]; int pages[1005]; int n; int x; char mat[1005][1005]; int prev_steps[1005][1005]; int main() { // ifstream cin ("input.txt"); int n, m; cin >> n >> m; int ei, ej, si, sj; int di[] = {-1, 1, 0, 0}; int dj[] = {0, 0, -1, 1}; for(int i = 0; i < n; i++) { for(int j =0 ; j < m; j++) { cin >> mat[i][j]; if(mat[i][j] == 'A') { si = i; sj = j; } if(mat[i][j] == 'B') { ei = i; ej = j; } } } queue
q; q.push(si); q.push(sj); q.push(0); vector
> visited(n + 1, vector
(m + 1, false)); visited[si][sj] = true; int path = -1; while(!q.empty()) { int ci = q.front(); q.pop(); int cj = q.front(); q.pop(); int dist = q.front(); q.pop(); if(ci == ei and cj == ej) { path = dist; break; } for(int i = 0; i < 4; i++) { int ti = ci + di[i]; int tj = cj + dj[i]; if(ti >= 0 and ti < n and tj >= 0 and tj < m and !visited[ti][tj] and mat[ti][tj] != '#') { q.push(ti); q.push(tj); q.push(dist + 1); prev_steps[ti][tj] = i; visited[ti][tj] = true; } } } if(path == -1) { cout << "NO"; return 0; } cout << "YES\n" << path << endl; pair
S = {si, sj}, E = {ei, ej}; string res = ""; while(E != S) { int direction = prev_steps[E.first][E.second]; if(direction == 0) { res += "U"; } else if(direction == 1) { res += "D"; } else if(direction == 2) { res += "L"; } else { res += "R"; } E = {E.first - di[direction], E.second - dj[direction]}; } reverse(res.begin(), res.end()); cout << res << endl; return 0; }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)