Submission #8266997
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
struct UnionFind {
vector<int> par;
vector<int> sz;
UnionFind(int n=0){
if(n>0) initialize(n);
}
void initialize(int n){
par.resize(n);
sz.resize(n);
for(int i=0; i<n; i++){
par[i] = i;
sz[i] = 1;
}
}
int find(int x){
if(par[x] == x){
return x;
}else{
return par[x] = find(par[x]);
}
}
bool unite(int x, int y){
x = find(x);
y = find(y);
if(x == y) return false;
if(sz[x] > sz[y]) swap(x, y);
par[x] = y;
sz[y] += sz[x];
return true;
}
bool same(int x, int y){
return find(x) == find(y);
}
int size(int x){
return sz[find(x)];
}
};
int main(){
int N, M, K;
cin >> N >> M >> K;
vector<vector<int>> es(M);
for(int i=0; i<M; i++){
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
es[i] = {c, a-1, b-1, i};
}
sort(es.rbegin(), es.rend());
// 出力しやすいように子供は1-indexedで扱っている
vector<int> ans(M, 0);
vector<UnionFind> uf(K+1, N);
for(auto& e : es){
int a = e[1], b = e[2], i = e[3];
// ok側が(a, b)非連結、ng側が既に連結
int ok = K+1, ng = 0;
while(ok-ng>1){
int mid = (ok+ng)/2;
(uf[mid].same(a, b) ? ng : ok) = mid;
}
if(ok != K+1){
uf[ok].unite(a, b);
ans[i] = ok;
}
}
for(int a : ans) printf("%d\n", a);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | K - 遺産相続 |
| User | betrue12 |
| Language | C++14 (GCC 5.4.1) |
| Score | 100 |
| Code Size | 1706 Byte |
| Status | AC |
| Exec Time | 337 ms |
| Memory | 98048 KiB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:54:38: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d %d", &a, &b, &c);
^
Judge Result
| Set Name | Subtask01 | Subtask02 | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 15 / 15 | 85 / 85 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Subtask01 | sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt |
| Subtask02 | sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 02-21.txt, 02-22.txt, 02-23.txt, 02-24.txt, 02-25.txt, 02-26.txt, 02-27.txt, 02-28.txt, 02-29.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01-01.txt | AC | 1 ms | 256 KiB |
| 01-02.txt | AC | 200 ms | 18432 KiB |
| 01-03.txt | AC | 223 ms | 18432 KiB |
| 01-04.txt | AC | 243 ms | 18560 KiB |
| 01-05.txt | AC | 19 ms | 2176 KiB |
| 01-06.txt | AC | 3 ms | 512 KiB |
| 01-07.txt | AC | 1 ms | 384 KiB |
| 01-08.txt | AC | 209 ms | 18560 KiB |
| 01-09.txt | AC | 242 ms | 18560 KiB |
| 01-10.txt | AC | 143 ms | 18560 KiB |
| 01-11.txt | AC | 142 ms | 18560 KiB |
| 01-12.txt | AC | 141 ms | 18560 KiB |
| 01-13.txt | AC | 148 ms | 18560 KiB |
| 01-14.txt | AC | 140 ms | 18432 KiB |
| 01-15.txt | AC | 139 ms | 18432 KiB |
| 01-16.txt | AC | 141 ms | 18560 KiB |
| 01-17.txt | AC | 140 ms | 18560 KiB |
| 02-01.txt | AC | 9 ms | 1920 KiB |
| 02-02.txt | AC | 270 ms | 20096 KiB |
| 02-03.txt | AC | 254 ms | 27776 KiB |
| 02-04.txt | AC | 300 ms | 97792 KiB |
| 02-05.txt | AC | 66 ms | 81024 KiB |
| 02-06.txt | AC | 47 ms | 79360 KiB |
| 02-07.txt | AC | 45 ms | 79232 KiB |
| 02-08.txt | AC | 337 ms | 97792 KiB |
| 02-09.txt | AC | 334 ms | 97792 KiB |
| 02-10.txt | AC | 224 ms | 97792 KiB |
| 02-11.txt | AC | 225 ms | 97792 KiB |
| 02-12.txt | AC | 224 ms | 97792 KiB |
| 02-13.txt | AC | 255 ms | 22144 KiB |
| 02-14.txt | AC | 285 ms | 22144 KiB |
| 02-15.txt | AC | 261 ms | 22144 KiB |
| 02-16.txt | AC | 183 ms | 22144 KiB |
| 02-17.txt | AC | 182 ms | 22144 KiB |
| 02-18.txt | AC | 182 ms | 22144 KiB |
| 02-19.txt | AC | 224 ms | 97408 KiB |
| 02-20.txt | AC | 216 ms | 27648 KiB |
| 02-21.txt | AC | 203 ms | 27648 KiB |
| 02-22.txt | AC | 226 ms | 43392 KiB |
| 02-23.txt | AC | 218 ms | 43392 KiB |
| 02-24.txt | AC | 252 ms | 98048 KiB |
| 02-25.txt | AC | 250 ms | 98048 KiB |
| 02-26.txt | AC | 248 ms | 98048 KiB |
| 02-27.txt | AC | 225 ms | 97920 KiB |
| 02-28.txt | AC | 225 ms | 97920 KiB |
| 02-29.txt | AC | 225 ms | 97920 KiB |
| sample-01.txt | AC | 1 ms | 256 KiB |
| sample-02.txt | AC | 1 ms | 256 KiB |