import java.io.*;
import java.util.*;
public class Main {
static int arr[], parent[];
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(bf.readLine());
int N = Integer.parseInt(st.nextToken()), M = Integer.parseInt(st.nextToken());
arr = new int[N]; parent = new int[N];
for(int i=0;i<N;i++) {
arr[i] = Integer.parseInt(bf.readLine());
parent[i] = i;
}
for(int i=0;i<M;i++) {
st = new StringTokenizer(bf.readLine());
int a = Integer.parseInt(st.nextToken())-1, b = Integer.parseInt(st.nextToken())-1;
int fa = find(a), fb = find(b);
if(fa==fb) {
bw.write(Integer.toString(arr[fa])+"\n");
} else if(fa < fb) {
parent[fb] = fa;
arr[fa] += arr[fb];
arr[fb] = 0;
bw.write(Integer.toString(arr[fa])+"\n");
} else {
parent[fa] = fb;
arr[fb] += arr[fa];
arr[fa] = 0;
bw.write(Integer.toString(arr[fb])+"\n");
}
}
bw.flush();
}
static int find(int a) {
if(a == parent[a]) {
return a;
}
return parent[a] = find(parent[a]);
}
}
'Algorithm' 카테고리의 다른 글
[boj] ACM Craft_1005 java (1) | 2025.01.26 |
---|---|
[boj] 호반우 상인의 이상한 품질 계산법_20117 cpp (1) | 2024.12.29 |
Boj_ 회의실 배정 4 java (1) | 2024.11.11 |
[boj] 이차원 배열과 연산17140 JAVA (0) | 2024.10.27 |
[boj] 연구소 3_17142 JAVA (0) | 2024.10.21 |