直接用栈模拟即可
// Problem#: 1021
// Submission#: 2839209
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include<iostream>
#include<algorithm>
#include<stack>
using namespace std;
int couple[200005];
int main() {
int n;
while (cin >> n && n) {
int a, b;
for(int i = 1; i <= n; ++i)
{
cin >> a >> b;
couple[a] = couple[b] = i;
}
stack<int> st;
for (int i = 1; i <= 2*n; ++i)
{
if(st.empty() || st.top() != couple[i])
st.push(couple[i]);
else
st.pop();
}
if (!st.empty())
cout << "No\n";
else
cout << "Yes\n";
}
}