DOTY
13) 백준 18352 - 특정 거리의 도시 찾기 본문
728x90
반응형
18352번: 특정 거리의 도시 찾기 (acmicpc.net)
18352번: 특정 거리의 도시 찾기
첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개
www.acmicpc.net
BFS였는데 왜이리 안풀리지 했는데 잔오류가 너무 많았었다
#include <bits/stdc++.h>
using namespace std;
int city[300001];
int check[300001];
int main(void) {
int N, M, K, X;
cin >> N >> M >> K >> X;
fill_n(check, 300001, 0);
fill_n(city, 300001, 0);
vector<vector<int>> city(300001);
int A, B;
for(int i = 0; i < M; i++) {
cin >> A >> B;
city[A].push_back(B);
}
queue<int> q;
q.push(X);
check[X] = 1;
int cnt = 0;
int q_size = q.size();
while(!q.empty()) {
if(q_size == 0) {
q_size = q.size();
cnt++;
}
if(cnt == K) {
break;
}
int start_point = q.front();
q.pop();
q_size--;
for(int i = 0; i < city[start_point].size(); i++) {
if(check[city[start_point][i]] == 0) {
check[city[start_point][i]] = 1;
q.push(city[start_point][i]);
}
}
}
vector<int> v;
if(q.empty()) {
v.push_back(-1);
}
else {
for(int i = 0; i < q_size; i++) {
v.push_back(q.front());
q.pop();
}
}
sort(v.begin(), v.end());
for(int i =0; i < v.size(); i++) {
cout << v[i] << '\n';
}
}
대체 "출력 오류" 왜 뜨지 했는데
문제를 똑바로 안읽었다. "단방향"이라고 적혀있었는데 왜 "양방향"으로 구현했는지..
심지어 테스팅 코드도 다 맞다고 뜨니까 껄껄.....
으이구 인간아 ᕙ( ︡’︡益’︠)ง
728x90
반응형
'Algorithm > BFS&DFS' 카테고리의 다른 글
15) 백준 12100 - 2048 (Easy) (0) | 2023.04.02 |
---|---|
14) 백준 13023 - ABCDE (0) | 2023.03.30 |
12) 백준 2468 - 안전 영역 (0) | 2023.02.26 |
11) 프로그래머스 Lv2 - 게임 맵 최단거리 (0) | 2023.02.16 |
10) 백준 1012 - 유기농 배추 (0) | 2023.01.23 |