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 |