90pts
#include<bits/stdc++.h>
#define inf 505
using namespace std;
int m;
int mapp[inf][inf];
int cans[inf];
int start,endd;
int du[inf];
int cnt;
int zhan[999999];
int minn=2147483640;
int maxx=-1;
inline void dfs(int x)
{
for(int i=1;i<=maxx;i++)
{
if(mapp[x][i]>0)
{
mapp[x][i]--;
mapp[i][x]--;
dfs(i);
}
}
cnt++;
zhan[cnt]=x;
}
bool tong[300];
int gu;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin>>m;
for(int i=1;i<=m;i++)
{
char a,b;
cin>>a>>b;
int x,y;
x=int(a);
y=int(b);
minn=min(min(x,y),minn);
maxx=max(max(x,y),maxx);
mapp[x][y]++;
mapp[y][x]++;
du[x]++;
du[y]++;
}
for(int i=1;i<=maxx;i++)
{
if(du[i]%2==1 && start==0){
start=i;
break;
}
}
if(start==0){
gu=m-1;
start=minn;
}
else gu=m;
dfs(start);
if(gu==cnt)
{
cout<<"No Solution";
return 0;
}
for(int i=cnt;i>=1;i--)
{
if(zhan[i]!=32) cout<<char(zhan[i]);
}
}
玄关