/* validation */ #include #include "testlib.h" #include using namespace std; using ll = long long; // 制約に書かれている定数を宣言 const ll Nmin = 3, Nmax = 100000; int main(){ // validation を始める際に必ず行う registerValidation(); // N を読み取る(Nmin 以上 Nmax 以下であるかの確認も含む) ll N = inf.readLong(Nmin,Nmax); // 改行を読み取る inf.readEoln(); atcoder::dsu uf(N); // N個のノードで初期化 // 辺を読み取る for (int i = 0; i < N-1; i++){ ll u = inf.readLong(1,N); u -= 1; inf.readSpace(); ll v = inf.readLong(1,N); v -= 1; inf.readEoln(); // エッジ(u, v)を追加する前に、uとvが既に連結かチェック assert (uf.same(u, v) == false); // 連結でなければ、併合する uf.merge(u, v); } // ファイルの終わりを読み取る inf.readEof(); // 正常に validation が終了 return 0; }