코드 복사/붙여넣기 하는 당신이 아름답습니다.

5214 : 환승

풀이

이번 역은 욱제 욱제 역입니다.

수찬이나 사과역으로 갈아타실 고객께서는 이번 역에서 내리시기 바랍니다.

코드

#include <stdio.h>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;

const int n_ = 1e5 + 1e3 + 1;
int n, k, m, a, i, j, chk[n_];
queue<int> que;
vector<int> gph[n_];

int main() {
	scanf("%d %d %d", &n, &k, &m);
	for (i = n + 1; i <= n + m; i++) {
		for (j = 0; j < k; j++) {
			scanf("%d", &a);
			gph[i].push_back(a);
			gph[a].push_back(i);
		}
	}
    chk[1] = 1;
	que.push(1);
	while (!que.empty()) {
		int now = que.front();
		que.pop();
		for (auto nxt : gph[now]) if (!chk[nxt])
			chk[nxt] = chk[now] + 1, que.push(nxt);
	}
	chk[n] ? printf("%d", chk[n] / 2 + 1) : printf("-1");

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2018-08-28 00:32

Read more posts by this author