和题解基本一样 不理解一直TLE
#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define ll long long
#define MAXN 51
#define WA puts("CCF\n");
#define eps 1e-5
int n;
int c[51];
int mapp[51][51];
//bool v[MAXN];
vector<pair<int,int> > ka;
void init()
{
//memset(rd,0,sizeof(rd));
//memset(cd,0,sizeof(cd));
memset(c,0,sizeof(c));
memset(mapp,0,sizeof(mapp));
//memset(v,0,sizeof(v));
//rq.clear();
//cq.clear();
return ;
}
void dfs(int pos)
{
for(int i=1;i<=50;i++)
{
if(mapp[pos][i])
{
ka.push_back(make_pair(pos,i));
mapp[pos][i]--;
mapp[i][pos]--;
dfs(i);
break;
}
}
return ;
}
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int _;
cin>>_;
for(int l=1;l<=_;l++)
{
cout<<"Case #"<<l<<"\n";
cin>>n;
init();
int st;
for(int i=1;i<=n;i++)
{
int u,v;
cin>>u>>v;
mapp[u][v]++;
mapp[v][u]++;
c[u]++;
c[v]++;
st=u;
}
bool flag=true;
for(int i=1;i<51;i++)
{
if((c[i])%2!=0)
{
flag=false;
cout<<"some beads may be lost\n\n";
break;
}
//cout<<cq[i]<<" "<<rq[i]<<"\n";
}
if(!flag) continue;
dfs(st);
for(auto i:ka)
{
cout<<i.first<<" "<<i.second<<"\n";
}
cout<<"\n";
}
return 0;
}