#include <bits/stdc++.h>
using namespace std;
const int nx=6e4+5;
int n, k, l[nx], r[nx], s[nx], vs[nx], f;
set<int> deg[nx];
void solve(int x, int idx)
{
cout<<"debug "<<x<<' '<<idx<<'\n';
if (l[x]==idx)
{
deg[r[x]].erase(idx);
if (deg[r[x]].empty()) f=1;
else if (deg[r[x]].size()==1) solve(*deg[r[x]].begin(), r[x]);
}
else
{
deg[l[x]].erase(idx);
if (deg[l[x]].empty()) f=1;
else if (deg[l[x]].size()==1) solve(*deg[l[x]].begin(), l[x]);
}
}
int main()
{
cin.tie(NULL)->sync_with_stdio(false);
cin>>n>>k;
for (int i=1; i<=2*n; i++) cin>>l[i]>>r[i]>>s[i], r[i]+=n, deg[l[i]].insert(i), deg[r[i]].insert(i);
for (int i=1; i<=2*n; i++) if (deg[i].empty()) return cout<<"NO", 0;
for (int i=1; i<=2*n; i++) if (deg[i].size()==1&&!f) solve(*deg[i].begin(), i);
if (f) cout<<"NO";
else cout<<"YES";
}
/*
2 20
1 1 1
1 2 4
2 2 1
2 1 4
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |