Submission #18369924
Source Code Expand
#include <bits/stdc++.h>
#include <atcoder/all>
#define INF 1e9
using namespace std;
#define REPR(i,n) for(int i=(n); i >= 0; --i)
#define FOR(i, m, n) for(int i = (m); i < (n); ++i)
#define REP(i, n) for(int i=0, i##_len=(n); i<i##_len; ++i)
#define ALL(a) (a).begin(),(a).end()
#define endl "\n"
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return true; } return false; }
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return true; } return false; }
typedef long long ll;
struct Edge {
int u,v,c;
};
void solve() {
int N,M; cin >> N >> M;
auto kruskal = [&]()->vector<set<pair<int,int>>> {
// 辺集合
vector<Edge> edges(M);
REP(i,M) {
int v1,v2,c; cin >> v1 >> v2 >> c;
v1--; v2--;
edges[i] = Edge{v1,v2,c};
}
atcoder::dsu uf(N);
// key < val とする。
vector<set<pair<int,int>>> g(N,set<pair<int,int>>());
for(const auto &edge: edges) {
// 木構造になっていたら終わり
if(uf.size(0) == N) break;
if(uf.same(edge.u,edge.v)) continue;
// swap したいのでコピー
g[edge.u].emplace(edge.v,edge.c);
g[edge.v].emplace(edge.u,edge.c);
}
return g;
};
auto tree = kruskal();
// rootノードを決める
int root = -1;
REP(i,N) if(!tree[i].empty()) {
root = i;
break;
}
assert(root != -1);
// 良い書き方を作成していく
auto bfs = [&]() {
vector<int> vals(N,-1);
vals[root] = 1;
// pos, parent val
queue<int> q;
q.push(root);
while(!q.empty()) {
auto pos = q.front(); q.pop();
for(const auto &child: tree[pos]) {
auto [next,next_label] = child;
if(vals[next] != -1) continue;
if(next_label != vals[pos])vals[next] = next_label;
else vals[next] = (next_label%N)+1;
q.push(next);
}
}
for(const auto &it: vals) cout << it << endl;
};
bfs();
}
int main() {
solve();
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Keep Graph Connected |
| User | reud |
| Language | C++ (GCC 9.2.1) |
| Score | 500 |
| Code Size | 2268 Byte |
| Status | AC |
| Exec Time | 266 ms |
| Memory | 26880 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt |
| All | hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, hand_06.txt, hand_07.txt, hand_08.txt, hand_09.txt, hand_10.txt, hand_11.txt, hand_12.txt, hand_13.txt, hand_14.txt, hand_15.txt, hand_16.txt, hand_17.txt, hand_18.txt, hand_19.txt, hand_20.txt, hand_21.txt, hand_22.txt, hand_23.txt, hand_24.txt, hand_25.txt, hand_26.txt, hand_27.txt, hand_28.txt, hand_29.txt, hand_30.txt, hand_31.txt, hand_32.txt, hand_33.txt, hand_34.txt, hand_35.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, random_35.txt, random_36.txt, random_37.txt, random_38.txt, random_39.txt, random_40.txt, random_41.txt, random_42.txt, random_43.txt, random_44.txt, random_45.txt, random_46.txt, random_47.txt, random_48.txt, random_49.txt, random_50.txt, sample_01.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| hand_01.txt | AC | 8 ms | 3524 KiB |
| hand_02.txt | AC | 2 ms | 3496 KiB |
| hand_03.txt | AC | 3 ms | 3532 KiB |
| hand_04.txt | AC | 2 ms | 3408 KiB |
| hand_05.txt | AC | 5 ms | 3416 KiB |
| hand_06.txt | AC | 3 ms | 3528 KiB |
| hand_07.txt | AC | 2 ms | 3416 KiB |
| hand_08.txt | AC | 3 ms | 3416 KiB |
| hand_09.txt | AC | 1 ms | 3524 KiB |
| hand_10.txt | AC | 2 ms | 3464 KiB |
| hand_11.txt | AC | 122 ms | 16500 KiB |
| hand_12.txt | AC | 114 ms | 15000 KiB |
| hand_13.txt | AC | 113 ms | 15772 KiB |
| hand_14.txt | AC | 59 ms | 9332 KiB |
| hand_15.txt | AC | 59 ms | 9752 KiB |
| hand_16.txt | AC | 69 ms | 10772 KiB |
| hand_17.txt | AC | 38 ms | 6620 KiB |
| hand_18.txt | AC | 154 ms | 18724 KiB |
| hand_19.txt | AC | 62 ms | 10036 KiB |
| hand_20.txt | AC | 99 ms | 13560 KiB |
| hand_21.txt | AC | 59 ms | 9264 KiB |
| hand_22.txt | AC | 134 ms | 16876 KiB |
| hand_23.txt | AC | 80 ms | 12768 KiB |
| hand_24.txt | AC | 118 ms | 16080 KiB |
| hand_25.txt | AC | 118 ms | 16560 KiB |
| hand_26.txt | AC | 23 ms | 5272 KiB |
| hand_27.txt | AC | 25 ms | 6028 KiB |
| hand_28.txt | AC | 162 ms | 18664 KiB |
| hand_29.txt | AC | 92 ms | 14388 KiB |
| hand_30.txt | AC | 48 ms | 7960 KiB |
| hand_31.txt | AC | 140 ms | 18756 KiB |
| hand_32.txt | AC | 159 ms | 18728 KiB |
| hand_33.txt | AC | 142 ms | 18780 KiB |
| hand_34.txt | AC | 155 ms | 18748 KiB |
| hand_35.txt | AC | 142 ms | 18780 KiB |
| random_01.txt | AC | 5 ms | 3540 KiB |
| random_02.txt | AC | 2 ms | 3496 KiB |
| random_03.txt | AC | 2 ms | 3536 KiB |
| random_04.txt | AC | 3 ms | 3408 KiB |
| random_05.txt | AC | 3 ms | 3584 KiB |
| random_06.txt | AC | 3 ms | 3536 KiB |
| random_07.txt | AC | 1 ms | 3624 KiB |
| random_08.txt | AC | 3 ms | 3412 KiB |
| random_09.txt | AC | 3 ms | 3416 KiB |
| random_10.txt | AC | 2 ms | 3524 KiB |
| random_11.txt | AC | 2 ms | 3524 KiB |
| random_12.txt | AC | 3 ms | 3496 KiB |
| random_13.txt | AC | 2 ms | 3588 KiB |
| random_14.txt | AC | 4 ms | 3448 KiB |
| random_15.txt | AC | 2 ms | 3600 KiB |
| random_16.txt | AC | 2 ms | 3524 KiB |
| random_17.txt | AC | 2 ms | 3532 KiB |
| random_18.txt | AC | 2 ms | 3416 KiB |
| random_19.txt | AC | 2 ms | 3524 KiB |
| random_20.txt | AC | 3 ms | 3528 KiB |
| random_21.txt | AC | 11 ms | 3628 KiB |
| random_22.txt | AC | 4 ms | 3432 KiB |
| random_23.txt | AC | 14 ms | 3772 KiB |
| random_24.txt | AC | 11 ms | 3552 KiB |
| random_25.txt | AC | 5 ms | 3552 KiB |
| random_26.txt | AC | 12 ms | 3592 KiB |
| random_27.txt | AC | 5 ms | 3560 KiB |
| random_28.txt | AC | 9 ms | 3576 KiB |
| random_29.txt | AC | 9 ms | 3568 KiB |
| random_30.txt | AC | 10 ms | 3720 KiB |
| random_31.txt | AC | 51 ms | 8700 KiB |
| random_32.txt | AC | 19 ms | 4708 KiB |
| random_33.txt | AC | 22 ms | 5640 KiB |
| random_34.txt | AC | 80 ms | 12976 KiB |
| random_35.txt | AC | 52 ms | 9072 KiB |
| random_36.txt | AC | 42 ms | 7412 KiB |
| random_37.txt | AC | 47 ms | 8220 KiB |
| random_38.txt | AC | 100 ms | 15468 KiB |
| random_39.txt | AC | 70 ms | 11380 KiB |
| random_40.txt | AC | 98 ms | 14820 KiB |
| random_41.txt | AC | 115 ms | 15280 KiB |
| random_42.txt | AC | 128 ms | 16824 KiB |
| random_43.txt | AC | 143 ms | 18132 KiB |
| random_44.txt | AC | 266 ms | 26880 KiB |
| random_45.txt | AC | 192 ms | 21040 KiB |
| random_46.txt | AC | 63 ms | 9520 KiB |
| random_47.txt | AC | 241 ms | 25580 KiB |
| random_48.txt | AC | 254 ms | 26268 KiB |
| random_49.txt | AC | 149 ms | 18608 KiB |
| random_50.txt | AC | 88 ms | 13484 KiB |
| sample_01.txt | AC | 8 ms | 3480 KiB |