백준 알고리즘 16928번 : 뱀과 사다리 게임

Zoo Da·2021년 11월 28일
0

백준 알고리즘

목록 보기
271/337
post-thumbnail

링크

https://www.acmicpc.net/problem/16928

sol1) BFS

#pragma GCC optimize ("O3")
#include <bits/stdc++.h>
#define fastio ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define int int64_t
using namespace std;

int32_t main() {
  fastio;
  vector<int> v(101, -1),dist(101,-1);
  int n,m; cin >> n >> m;
  for(int i = 0; i < n + m; i++){
    int a,b; cin >> a >> b;
    v[a] = b;
  }
  queue<int> Q;
  dist[1] = 0;
  Q.push(1);
  while(!Q.empty()){
    auto cur = Q.front(); Q.pop();
    for(int i = 1; i <= 6; i++){
      if(cur + i > 100) break;
      auto nxt = (v[cur + i]!=-1 ? v[cur + i] : cur + i);
      if(dist[nxt] != -1) continue;
      dist[nxt] = dist[cur] + 1;
      Q.push(nxt);
    }
  }
  cout << dist[100] << "\n";
}
profile
메모장 겸 블로그

0개의 댓글