#include #include"testlib.h" #include using namespace std; using ll = long long; const ll Nmin = 2, Nmax = 200'000; const ll Amin = 0, Amax = 1'000'000'000; int main(){ registerValidation(); ll n = inf.readLong(Nmin,Nmax); inf.readEoln(); for (int i = 0; i < n; i++){ inf.readLong(Amin,Amax); if (i != n-1){ inf.readSpace(); } else { inf.readEoln(); } } atcoder::dsu d(n); for (int i = 0; i < n-1; i++){ ll u = inf.readLong(1,n); inf.readSpace(); ll v = inf.readLong(1,n); inf.readEoln(); u--, v--; inf.ensuref(!d.same(u,v),"graph must form a tree"); d.merge(u,v); } inf.readEof(); }