Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define gc c=getchar()
- #define r(x) read(x)
- #define ll long long
- template<typename T>
- inline void read(T&x){
- x=0;T k=1;char gc;
- while(!isdigit(c)){if(c=='-')k=-1;gc;}
- while(isdigit(c)){x=x*10+c-'0';gc;}x*=k;
- }
- const int N=1e3+7;
- int a[N];
- int ans[N];
- bool vis[N];
- int main(){
- // freopen(".in","r",stdin);
- // freopen(".out","w",stdout);
- int n;r(n);
- for(int i=1;i<n;++i){
- int u,v;r(u),r(v);
- if(u!=n && v!=n)return puts("NO"),0;
- if(u==v)return puts("NO"),0;
- if(u==n)swap(u,v);
- a[i]=u;
- }
- sort(a+1,a+n);
- for(int i=1;i<n;++i){
- if(a[i]<i)return puts("NO"),0;
- }
- for(int i=1;i<n;++i){
- if(a[i]!=a[i-1])ans[i]=a[i],vis[a[i]]=1;
- else {
- for(int j=1;j<=a[i];++j){
- if(!vis[j]){
- ans[i]=j;
- vis[j]=1;
- break;
- }
- }
- }
- }
- puts("YES");
- ans[n]=n;
- for(int i=1;i<n;++i){
- printf("%d %d\n",ans[i],ans[i+1]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement