⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1514.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 1514 on 2006-07-23 at 15:20:27 */ 
#include <cstdio>
#include <list>
#include <algorithm>
using namespace std;

const int MAX = 64;

class Node {
public:
	list<int> adj;
	bool visit;
	void make();
};
void Node::make() {
	adj.clear();
	visit = false;
}

Node node[MAX];

void print(int);

int main()
{
	int d[MAX], seq[MAX];
	int i, p;
	char ch;

	while((ch = getchar()) != EOF) {
		ungetc(ch, stdin);
		int sn = 0, nn = 0, b = 1;
		memset(d, 0, sizeof(d));
		for(sn = 0; true; sn++) {
			ch = getchar();
			if(ch == '\n') break;
			else ungetc(ch, stdin), scanf("%d", &seq[sn]);
			nn = max(nn, seq[sn]); d[seq[sn]]++;
			while((ch = getchar()) == ' ');
			ungetc(ch, stdin);
		}
		for(i = 0; i <= nn; i++) node[i].make();
		for(i = 0; i < sn; i++) {
			for(p = 1; d[p] != 0; p++) ;
			if(i == 0) b = p;
			node[p].adj.push_back(seq[i]); node[seq[i]].adj.push_back(p);
			d[p]--; d[seq[i]]--;
		}
		print(b);
		putchar('\n');
	}
	
	return 0;
}

void print(int o)
{
	printf("(%d", o);
	node[o].visit = true;
	list<int>::iterator it;
	for(it = node[o].adj.begin(); it != node[o].adj.end(); it++) {
		if(!node[*it].visit) {
			putchar(' ');
			print(*it);
		}
	}
	putchar(')');
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -