728x90
반응형
https://www.acmicpc.net/problem/17250
17250번: 은하철도
입력 데이터가 큰 관계로, 빠른 입출력을 사용하는 것을 권장합니다.
www.acmicpc.net
#include <iostream>
using namespace std;
int parent[100100];
int sum[100100];
int getParent(int x){
if(x == parent[x]) return x;
return parent[x] = getParent(parent[x]);
}
void unionParent(int a, int b){
a = getParent(a);
b = getParent(b);
if(a > b){
parent[a] = b;
sum[b] += sum[a];
} else{
parent[b] = a;
sum[a] += sum[b];
}
}
int main() {
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++){
int x;
cin >> x;
parent[i] = i;
sum[i] = x;
}
for(int i = 0; i < m; i++){
int a, b;
cin >> a >> b;
if(getParent(a) != getParent(b)) unionParent(a, b);
if(a > b) cout << sum[getParent(b)] << endl;
else cout << sum[getParent(a)] << endl;
}
return 0;
}
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 9694번 무엇을 아느냐가 아니라 누구를 아느냐가 문제다 (C++) (0) | 2022.08.04 |
---|---|
[BOJ] 5972번 택배 배송 (C++) (0) | 2022.08.04 |
[BOJ] 1863번 스카이라인 쉬운거 (C++) (0) | 2022.07.31 |
[BOJ] 16401번 과자 나눠주기 (C++) (0) | 2022.07.31 |
[BOJ] 4949번 균형잡힌 세상 (C++) (0) | 2022.07.29 |