본문 바로가기
Problem solving/BOJ

[BOJ] 11265. 끝나지 않는 파티 (C++)

by 겸 2023. 7. 25.

문제

파티장에서 파티장으로 직접적으로 연결된 도로를 통해 이동하는 시간이 있을 때, 손님이 시간내에 다른 파티장에 도착할 수 있으면 “Enjoy other party”를, 시간내에 도착할 수 없으면 "Stay here”를 출력

생각할 것

모든 파티장에서 모든파티장의 최단 경로를 알아야하고, 경유하며 방문하므로 플로이드 워셜 사용하기

코드

#include <iostream>
#include <vector>

#define INF 1e9
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int N, M;
    cin >> N >> M;

    vector<vector<int>> adj(N + 1, vector<int>(N + 1, INF));
    for (int i = 1; i <= N; i++) {
        for (int j = 1; j <= N; j++) {
            cin >> adj[i][j];
        }
    }

    for (int i = 1; i <= N; i++) adj[i][i] = 0;
    for (int k = 1; k <= N; k++) {
        for (int i = 1; i <= N; i++) {
            for (int j = 1; j <= N; j++) {
                adj[i][j] = min(adj[i][j], adj[i][k] + adj[k][j]);
            }
        }
    }

    int A, B, C;
    for (int i = 0; i < M; i++) {
        cin >> A >> B >> C;
        if (adj[A][B] <= C) cout << "Enjoy other party" << endl;
        else cout << "Stay here" << endl;
    }

    return 0;
}
반응형

'Problem solving > BOJ' 카테고리의 다른 글

[BOJ] 14938. 서강그라운드 (C++)  (0) 2023.07.25
[BOJ] 13549. 숨바꼭질 3 (C++)  (0) 2023.07.25
[BOJ] 2224. 명제 증명 (C++)  (0) 2023.07.25
[BOJ] 11403. 경로 찾기 (C++)  (0) 2023.07.25