#include #define pt(sth) cout << sth << "\n" #define itr(x,c) for(auto x=c.begin();x!=c.end();x++) #define all(a) (a.begin()),(a.end()) using namespace std; #include using namespace atcoder; typedef long long ll; typedef pair pll; templatebool chmax(T &a, const T &b) {if(abool chmin(T &a, const T &b) {if(b a(N); //for(i=0;i>a[i]; typedef vector v1d; typedef vector v2d; typedef vector v3d; class Edge { public: ll t, w; Edge() {} Edge(ll t, ll w): t(t), w(w) {} }; vector g[MAX]; vector dijkstra(ll s, ll n) { ll i; vector d(n,INF); priority_queue q; d[s]=0; q.push({0, s}); while(q.size()) { ll du=-q.top().first; ll u=q.top().second; q.pop(); if(d[u]>N; for(i=0;i>a>>b;a--;b--; g[a].push_back(Edge(b, 1));g[b].push_back(Edge(a, 1)); } v1d d=dijkstra(0, N); v1d cd; for(i=0;i2) cd.push_back(d[i]); } if(cd.size()==0){ pt("Yes"); }else if(cd.size()>1){ pt("No"); }else if(cd.size()==1){ vector v; for(i=0;i