#include using namespace std; #define rep(i, s, n) for (int i = (s); i < (int)(n); i++) #include using namespace atcoder; using mint1 = modint1000000007; using mint2 = modint998244353; using ll = long long; using ull = unsigned long long; using ld = long double; ld pi=3.141592653589793; const int inf=2e9; const ll linf=2e18; const ld eps=1e-14; #define Yes cout << "Yes" << endl #define No cout << "No" << endl ll dx[4]={1,0,-1,0}; ll dy[4]={0,1,0,-1}; struct edge{ ll to; ll leng; }; int main() { ////////////////// ios::sync_with_stdio(false); cin.tie(nullptr); ////////////////// ll n,m,k; cin >> n >> m >> k; vector a(n),c(n); for(ll i=0; i> t; a[i]=t,c[i]=t; } dsu uf(n); vector> st(n); for(ll i=0; i> u >> v; u--,v--; uf.merge(u,v); st[u].insert(a[v]); st[v].insert(a[u]); } vector> b(n); for(ll i=0; i k) { cout << "No" << endl; return 0; } if(j==b[i].size()-1) { if(b[i][j] != ma) { cout << "No" << endl; return 0; } } } } for(ll i=0; ic[i] && mi-c[i]>k) { cout << "No" << endl; return 0; } } cout << "Yes" << endl; }