# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
417893 | 2021-06-04T13:13:56 Z | 반딧불(#7603) | Rooted MST (innopolis2021_final_E) | C++17 | 4000 ms | 34596 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; struct Edge{ int x, y; ll z; Edge(){} Edge(int x, int y, ll z): x(x), y(y), z(z){} bool operator<(const Edge &r)const{ return z > r.z; } }; struct DisjointSet{ int n; int par[300002]; void init(int _n){ n = _n; for(int i=0; i<=n; i++) par[i] = i; } int find(int x){ if(x == par[x]) return x; return par[x] = find(par[x]); } void merge(int x, int y){ x = find(x), y = find(y); par[x] = y; } }; int n, m, q; ll arr[300002]; Edge link[300002]; void printMST(){ priority_queue<Edge> pq; for(int i=1; i<=m; i++) pq.push(link[i]); for(int i=1; i<=n; i++){ pq.push(Edge(0, i, arr[i])); } DisjointSet dsu; dsu.init(n); ll ans = 0; while(!pq.empty()){ Edge tmp = pq.top(); pq.pop(); int x = tmp.x, y = tmp.y; if(dsu.find(x) == dsu.find(y)) continue; dsu.merge(x, y); ans += tmp.z; } printf("%lld\n", ans); } int main(){ scanf("%d %d", &n, &m); for(int i=1; i<=n; i++){ scanf("%lld", &arr[i]); } for(int i=1; i<=m; i++){ scanf("%d %d %lld", &link[i].x, &link[i].y, &link[i].z); } scanf("%d", &q); while(q--){ int i; ll w; scanf("%d %lld", &i, &w); arr[i] = w; printMST(); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 1484 KB | Output is correct |
2 | Correct | 2 ms | 1356 KB | Output is correct |
3 | Correct | 3 ms | 1484 KB | Output is correct |
4 | Correct | 218 ms | 1560 KB | Output is correct |
5 | Correct | 996 ms | 1744 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 4049 ms | 34596 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 4059 ms | 19408 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 4062 ms | 17024 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 4062 ms | 17024 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 4066 ms | 34536 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 1484 KB | Output is correct |
2 | Correct | 2 ms | 1356 KB | Output is correct |
3 | Correct | 3 ms | 1484 KB | Output is correct |
4 | Correct | 218 ms | 1560 KB | Output is correct |
5 | Correct | 996 ms | 1744 KB | Output is correct |
6 | Execution timed out | 4083 ms | 9492 KB | Time limit exceeded |
7 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 1484 KB | Output is correct |
2 | Correct | 2 ms | 1356 KB | Output is correct |
3 | Correct | 3 ms | 1484 KB | Output is correct |
4 | Correct | 218 ms | 1560 KB | Output is correct |
5 | Correct | 996 ms | 1744 KB | Output is correct |
6 | Execution timed out | 4049 ms | 34596 KB | Time limit exceeded |
7 | Halted | 0 ms | 0 KB | - |