不知道哪错了
查看原帖
不知道哪错了
744562
Aya_tt楼主2022/8/8 20:52
#include<bits/stdc++.h>
using namespace std;
char a,b;
stack<int> q;
int n,G[300][300],del[300],cnt,fir;
void dfs(int x){
	for(int i = 0;i < 300;i++){
		if(G[x][i]){
			G[x][i] = G[i][x] = 0;
			dfs(i);
		}
	}
	q.push(x);
}
int main() {
	cin>>n;
	for(int i = 0;i < n;i++){
		char a,b;
		cin>>a>>b;
		G[a][b] = G[b][a] = 1;
		del[a]++,del[b]++;
	}
	for(int i = 0;i < 300;i++){
		if(del[i] & 1){
			++cnt;
			if(!fir){
				fir = i;
			}
		}
	}
	if(!fir) 
		for(int i = 0;i < 300;i++)
			if(!del[i]) {
				fir = i;
				break;	
			}
	if(cnt && cnt != 2){
		cout<<"No Solution";
		return 0;
	}
	dfs(fir);
	while(!q.empty()){
		char u = q.top();
		q.pop();
		cout<<u;
	}
}

死也不输出

2022/8/8 20:52
加载中...