https://www.acmicpc.net/problem/11265
- 간단한 플로이드-와샬 문제.
- 최대 500개 까지의 노드의 연결 그래프가 주어졌을 때, 모든 노드간의 최단 거리를 구해 놓는다.
- M 개의 서비스 요청에 대해서 각각의 최단 시간과 비교하여 가능 여부를 출력한다.
#include <iostream>
using namespace std;
int N, M, A, B, C;
int graph[501][501];
int main(void)
{
cin >> N >> M;
for(int r = 1 ; r <= N ; r++)
{
for(int c = 1 ; c <= N ; c++)
{
cin >> graph[r][c];
}
}
for(int k = 1 ; k <= N ; k++)
{
for(int r = 1 ; r <= N ; r++)
{
for(int c = 1 ; c <= N ; c++)
{
if(graph[r][k] + graph[k][c] < graph[r][c])
{
graph[r][c] = graph[r][k] + graph[k][c];
}
}
}
}
for(int i = 0 ; i < M ; i++)
{
cin >> A >> B >> C;
if(graph[A][B] <= C)
{
cout << "Enjoy other party\n";
}
else
{
cout << "Stay here\n";
}
}
}
'PS > BOJ' 카테고리의 다른 글
[백준] 15723 : n단 논법 (0) | 2021.06.09 |
---|---|
[백준] 3190 : 뱀 (0) | 2021.06.08 |
[백준] 17396 : 백도어 (0) | 2021.06.06 |
[백준] 15665 : N과 M (11) (0) | 2021.06.04 |
[백준] 12886 : 돌 그룹 (0) | 2021.06.03 |