首页 > 其他 > 详细

NYOJ93 汉诺塔(三)

时间:2014-04-08 10:46:26      阅读:418      评论:0      收藏:0      [点我收藏+]

原题链接

#include <cstdio>
#include <stack>
#include <algorithm>
using namespace std;

int main(){
	stack<int> s[4];
	int t, m, n, a, b, i, ok;
	scanf("%d", &t);
	while(t--){
		scanf("%d%d", &m, &n);
		for(i = m; i > 0; --i)
			s[1].push(i);
		ok = 1;
		while(n--){
			scanf("%d%d", &a, &b);
			if(ok) if(s[a].empty() || (!s[b].empty() && s[b].top() < s[a].top())) ok = 0;
					else{
						s[b].push(s[a].top());
						s[a].pop();
					}
		}
		printf(ok ? "legal\n" : "illegal\n");
		for(i = 1; i < 4; ++i)
			while(!s[i].empty()) s[i].pop();
	}
	return 0;
}

801366 长木 汉诺塔(三) bubuko.com,布布扣Accepted 0 308 C/C++ 04-07 20:48:53

NYOJ93 汉诺塔(三),布布扣,bubuko.com

NYOJ93 汉诺塔(三)

原文:http://blog.csdn.net/chang_mu/article/details/23127921

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!