Submission #24947786


Source Code Expand

#include "bits/stdc++.h"

#define int long long

using namespace std;
using ll = long long;
using P = pair<ll, ll>;
const ll INF = (1LL << 61);
ll mod = 1000000007;

struct UnionFind {
	vector<int>par, vsize, esize;
	UnionFind();
	UnionFind(int sz_) : par(sz_), vsize(sz_, 1), esize(sz_, 0) {
		for (int i = 0; i < sz_; i++)par[i] = i;
	}
	void init(int sz_) {
		par.resize(sz_);
		vsize.resize(sz_, 1);
		esize.resize(sz_, 0);
		for (int i = 0; i < sz_; i++)par[i] = i;
	}
	int root(int x) {
		if (par[x] == x)return x;
		else return par[x] = root(par[x]);
	}
	bool merge(int x, int y) {
		x = root(x), y = root(y);
		if (x == y) {
			esize[x]++;
			return false;
		}
		if (vsize[x] < vsize[y])swap(x, y);
		vsize[x] += vsize[y];
		esize[x] += esize[y] + 1;
		par[y] = x;
		return true;
	}
	bool issame(int x, int y) {
		return root(x) == root(y);
	}
	int vs(int x) {
		return vsize[root(x)];
	}
	int es(int x) {
		return esize[root(x)];
	}
};
// 辺の定義
struct Edge {
	int u, v;
	int cost;
};
// 比較関数
bool comp_e(const Edge &e1, const Edge &e2) {
	return e1.cost < e2.cost;
}

signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	int N, M; cin >> N >> M;
	N++;
	vector<Edge>G(M);
	for (int i = 0; i < M; i++) {
		int C, L, R; cin >> C >> L >> R; L--;
		G[i].u = L; G[i].v = R; G[i].cost = C;
		
	}
	sort(G.begin(), G.end(), comp_e);
	UnionFind uf(N);
	int sum = 0;
	for (auto e : G) {
		if (!uf.issame(e.u, e.v)) { // 閉路になければ加える
			uf.merge(e.u, e.v);
			sum += e.cost;
		}
	}
	set<int>st;
	for (int i = 0; i < N; i++)st.insert(uf.root(i));
	if ((int)st.size() > 1)cout << -1 << endl;
	else cout << sum << endl;
	return 0;


}

Submission Info

Submission Time
Task 049 - Flip Digits 2(★6)
User Example
Language C++ (GCC 9.2.1)
Score 6
Code Size 1757 Byte
Status AC
Exec Time 48 ms
Memory 8644 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 6 / 6
Status
AC × 4
AC × 54
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All 01_random_ok_01.txt, 01_random_ok_02.txt, 01_random_ok_03.txt, 01_random_ok_04.txt, 01_random_ok_05.txt, 01_random_ok_06.txt, 01_random_ok_07.txt, 01_random_ok_08.txt, 01_random_ok_09.txt, 01_random_ok_10.txt, 02_random_ng_01.txt, 02_random_ng_02.txt, 02_random_ng_03.txt, 02_random_ng_04.txt, 02_random_ng_05.txt, 02_random_ng_06.txt, 02_random_ng_07.txt, 02_random_ng_08.txt, 02_random_ng_09.txt, 02_random_ng_10.txt, 03_small_ok_01.txt, 03_small_ok_02.txt, 03_small_ok_03.txt, 04_small_ng_01.txt, 04_small_ng_02.txt, 04_small_ng_03.txt, 05_large_ok_01.txt, 05_large_ok_02.txt, 05_large_ok_03.txt, 05_large_ok_04.txt, 05_large_ok_05.txt, 05_large_ok_06.txt, 05_large_ok_07.txt, 06_large_ng_01.txt, 06_large_ng_02.txt, 06_large_ng_03.txt, 06_large_ng_04.txt, 06_large_ng_05.txt, 06_large_ng_06.txt, 06_large_ng_07.txt, 07_tree_01.txt, 07_tree_02.txt, 07_tree_03.txt, 07_tree_04.txt, 07_tree_05.txt, 08_large_deg_01.txt, 08_large_deg_02.txt, 08_large_deg_03.txt, 08_large_deg_04.txt, 08_large_deg_05.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
Case Name Status Exec Time Memory
01_random_ok_01.txt AC 34 ms 4660 KiB
01_random_ok_02.txt AC 46 ms 7112 KiB
01_random_ok_03.txt AC 45 ms 7584 KiB
01_random_ok_04.txt AC 43 ms 7056 KiB
01_random_ok_05.txt AC 39 ms 6500 KiB
01_random_ok_06.txt AC 21 ms 4412 KiB
01_random_ok_07.txt AC 38 ms 5716 KiB
01_random_ok_08.txt AC 37 ms 5804 KiB
01_random_ok_09.txt AC 34 ms 6056 KiB
01_random_ok_10.txt AC 31 ms 5520 KiB
02_random_ng_01.txt AC 38 ms 5396 KiB
02_random_ng_02.txt AC 20 ms 8352 KiB
02_random_ng_03.txt AC 32 ms 7232 KiB
02_random_ng_04.txt AC 31 ms 5260 KiB
02_random_ng_05.txt AC 38 ms 5704 KiB
02_random_ng_06.txt AC 25 ms 5008 KiB
02_random_ng_07.txt AC 40 ms 7900 KiB
02_random_ng_08.txt AC 26 ms 5648 KiB
02_random_ng_09.txt AC 40 ms 6440 KiB
02_random_ng_10.txt AC 41 ms 8088 KiB
03_small_ok_01.txt AC 2 ms 3524 KiB
03_small_ok_02.txt AC 2 ms 3528 KiB
03_small_ok_03.txt AC 2 ms 3524 KiB
04_small_ng_01.txt AC 1 ms 3548 KiB
04_small_ng_02.txt AC 1 ms 3476 KiB
04_small_ng_03.txt AC 2 ms 3576 KiB
05_large_ok_01.txt AC 41 ms 7584 KiB
05_large_ok_02.txt AC 48 ms 7852 KiB
05_large_ok_03.txt AC 41 ms 7292 KiB
05_large_ok_04.txt AC 44 ms 7380 KiB
05_large_ok_05.txt AC 46 ms 7792 KiB
05_large_ok_06.txt AC 43 ms 7232 KiB
05_large_ok_07.txt AC 45 ms 7856 KiB
06_large_ng_01.txt AC 44 ms 7908 KiB
06_large_ng_02.txt AC 43 ms 7636 KiB
06_large_ng_03.txt AC 45 ms 8160 KiB
06_large_ng_04.txt AC 46 ms 7848 KiB
06_large_ng_05.txt AC 47 ms 8180 KiB
06_large_ng_06.txt AC 46 ms 7496 KiB
06_large_ng_07.txt AC 48 ms 8644 KiB
07_tree_01.txt AC 19 ms 4948 KiB
07_tree_02.txt AC 20 ms 4588 KiB
07_tree_03.txt AC 20 ms 5000 KiB
07_tree_04.txt AC 14 ms 4276 KiB
07_tree_05.txt AC 36 ms 6592 KiB
08_large_deg_01.txt AC 36 ms 5648 KiB
08_large_deg_02.txt AC 39 ms 5648 KiB
08_large_deg_03.txt AC 39 ms 6792 KiB
08_large_deg_04.txt AC 41 ms 5912 KiB
08_large_deg_05.txt AC 45 ms 7588 KiB
sample_01.txt AC 2 ms 3576 KiB
sample_02.txt AC 2 ms 3480 KiB
sample_03.txt AC 2 ms 3484 KiB
sample_04.txt AC 2 ms 3640 KiB