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
#define MAXN 100010 using namespace std; vector
grafo[MAXN]; queue
q; int marc[MAXN], dist[MAXN], pai[MAXN]; int n; void bfs(int s){ q.push(s); marc[s] = 1; dist[s] = 0; pai[s] = -1; while(!q.empty()){ int v = q.front(); q.pop(); for(int viz : grafo[v]){ if(marc[viz] == 0){ marc[viz] = 1; q.push(viz); dist[viz] = dist[v]+1; pai[viz] = v; } } } } int main(){ int m; scanf("%d %d", &n, &m); for(int i = 1; i <= m; i++){ int a, b; scanf("%d %d", &a, &b); grafo[a].push_back(b); grafo[b].push_back(a); } bfs(1); if(dist[n] == 0){ printf("IMPOSSIBLE\n"); return 0; } printf("%d\n", dist[n]+1); //Encontra o menor caminho da fonte até o vértice v vector
path; path.push_back(n); while(pai[n] != -1){ n = pai[n]; path.push_back(n); } //path.push_back(n); reverse(path.begin(),path.end()); for(auto v : path){ printf("%d ", v); } }
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)