WA88求助
查看原帖
WA88求助
566833
遥遥领先楼主2023/7/9 13:52
#include <bits/stdc++.h>
using namespace std;
int n;
const int N = 5000;
int mp[N][N];
int deg[N];
int ans[N];
int tot;
void dfs(int a)
{
	for (int i = 1;i <= n;i++)
	{
		if (mp[a][i] >= 1)
		{
			mp[a][i]--;
			mp[i][a]--;
			dfs(i);
		}
	}
	tot++;
	ans[tot] = a;
}
int main()
{
	cin >> n;
	for (int i = 1;i <= n;i++)
	{
		int x,y;
		cin >> x >> y;
		mp[x][y]++;
		mp[y][x]++;
		deg[x]++;
		deg[y]++;
		n = max({n,x,y});
	}
	int s = 1;
	for (int i = 1;i <= n;i++)
	{
		if (deg[i] % 2)
		{
			s = i;
			break;
		}
	}
	dfs(s);
	while (tot)
	{
		cout << ans[tot] << '\n';
		tot--;
	}
	return 0;
}
2023/7/9 13:52
加载中...