#include "testlib.h" #include #include #include #include #include int main(int argc, char* argv[]){ registerValidation(argc, argv); int N = inf.readInt(2, 30'000); inf.readSpace(); int M = inf.readInt(N - 1, (int)std::min(50'000, (long long)N * (N - 1) / 2)); inf.readEoln(); std::set> edges; atcoder::dsu uf(N); for(int j = 0; j < M; j++){ int u = inf.readInt(1, N); inf.readSpace(); int v = inf.readInt(1, N); inf.readSpace(); ensuref(u != v, "simplicity violation"); ensuref(edges.find(std::make_pair(std::min(u,v), std::max(u,v))) == edges.end(), "edge duplicates"); edges.insert({std::min(u,v), std::max(u,v)}); uf.merge(u - 1, v - 1); int a = inf.readInt(1, 300); inf.readSpace(); int b = inf.readInt(1, 300); inf.readEoln(); ensuref(std::gcd(a, b) == 1, "gcd(a, b) violation"); } inf.readEof(); ensuref(uf.size(0) == N, "connectivity violation"); }