반응형
문제 링크 : 5014번: 스타트링크 (acmicpc.net)
5014번: 스타트링크
첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다.
www.acmicpc.net
> 풀이
BFS를 사용해서 풀자
#include <bits/stdc++.h>
using namespace std;
int F, S, G, U, D, res = INT_MAX;
int path[1000001];
bool visited[1000001];
queue<int> q;
int main(void) {
scanf("%d %d %d %d %d", &F, &S, &G, &U, &D);
int move[2] = {U, -1 * D};
q.push(S);
visited[S] = true;
while (!q.empty()) {
int n = q.front();
q.pop();
for (int i = 0; i < 2; i++) {
int nn = n + move[i];
if (nn >= 1 && nn <= F && !visited[nn]) {
q.push(nn);
visited[nn] = true;
path[nn] = path[n] + 1;
}
}
}
if (visited[G]) printf("%d", path[G]);
else printf("use the stairs");
return 0;
}
반응형
'알고리즘 (백준)' 카테고리의 다른 글
백준 2644 (촌수계산) / C++ (0) | 2020.11.06 |
---|