为啥子错了啊?
#include <bits/stdc++.h>
using namespace std;
int n, now = 1, tot = 1, ans[150];
bool is_input[150], c[150][150], vis[150][150];
void dfs(int x) {
if(now == n + 1) {
for (int i = 1; i <= tot; i++)
cout << (char)ans[i];
exit(0);
}
for (int i = 'A'; i <= 'z'; i++)
if(c[x][i] && !vis[x][i]) {
now++, tot++;
ans[tot] = i;
vis[x][i] = vis[i][x] = 1;
dfs(i);
vis[x][i] = vis[i][x] = 0;
ans[tot] = 0;
now--, tot--;
}
}
int main() {
cin >> n;
string s;
for (int i = 1; i <= n; i++) {
cin >> s;
int a = s[0], b = s[1];
is_input[a] = is_input[b] = true;
c[a][b] = c[b][a] = true;
}
for (int i = (int)'A'; i <= (int)'z'; i++)
if(is_input[i]) {
ans[1] = i;
dfs(i);
break;
}
cout << "No Solution" << endl;
return 0;
}