https://www.acmicpc.net/problem/11265
11265번: 끝나지 않는 파티
입력의 첫 번째 줄에는 파티장의 크기 N(5 ≤ N ≤ 500)과 서비스를 요청한 손님의 수 M(1 ≤ M ≤ 10,000) 이 주어진다. 각각의 파티장은 1번부터 N번까지 번호가 붙여져 있다. 다음에는 N개의 줄에 걸
www.acmicpc.net
최단 경로 문제다.
플로이드 워셜을 이용하여 풀었다.
이 문제의 입력은 (시작, 끝, 가중치)가 아닌 배열로 입력이 들어오기 때문에 편했다.
플로이드 워셜을 이용해 모든 지점에서 모든 지점까지의 최단 경로를 구한다.
m개의 입력을 맏아 a에서 b까지 걸리는 시간이 c초과와 이하인 경우로 나눠 출력을 한다.
#include <iostream>
using namespace std;
int n, m;
int arr[501][501];
int result[51];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++) cin >> arr[i][j];
for (int i = 1; i <= n; i++) {
for (int r = 1; r <= n; r++) {
for (int c = 1; c <= n; c++) {
arr[r][c] = min(arr[r][c], arr[r][i] + arr[i][c]);
}
}
}
while (m--) {
int a, b, c; cin >> a >> b >> c;
if (arr[a][b] > c) cout << "Stay here\n";
else cout << "Enjoy other party\n";
}
}
'Algorithm > Shortest Path' 카테고리의 다른 글
[C++] BOJ(백준) 11404 플로이드 (0) | 2024.02.19 |
---|
https://www.acmicpc.net/problem/11265
11265번: 끝나지 않는 파티
입력의 첫 번째 줄에는 파티장의 크기 N(5 ≤ N ≤ 500)과 서비스를 요청한 손님의 수 M(1 ≤ M ≤ 10,000) 이 주어진다. 각각의 파티장은 1번부터 N번까지 번호가 붙여져 있다. 다음에는 N개의 줄에 걸
www.acmicpc.net
최단 경로 문제다.
플로이드 워셜을 이용하여 풀었다.
이 문제의 입력은 (시작, 끝, 가중치)가 아닌 배열로 입력이 들어오기 때문에 편했다.
플로이드 워셜을 이용해 모든 지점에서 모든 지점까지의 최단 경로를 구한다.
m개의 입력을 맏아 a에서 b까지 걸리는 시간이 c초과와 이하인 경우로 나눠 출력을 한다.
#include <iostream>
using namespace std;
int n, m;
int arr[501][501];
int result[51];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++) cin >> arr[i][j];
for (int i = 1; i <= n; i++) {
for (int r = 1; r <= n; r++) {
for (int c = 1; c <= n; c++) {
arr[r][c] = min(arr[r][c], arr[r][i] + arr[i][c]);
}
}
}
while (m--) {
int a, b, c; cin >> a >> b >> c;
if (arr[a][b] > c) cout << "Stay here\n";
else cout << "Enjoy other party\n";
}
}
'Algorithm > Shortest Path' 카테고리의 다른 글
[C++] BOJ(백준) 11404 플로이드 (0) | 2024.02.19 |
---|