程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> NYOJ93 漢諾塔(三)

NYOJ93 漢諾塔(三)

編輯:C++入門知識

原題鏈接

#include 
#include 
#include 
using namespace std;

int main(){
	stack 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 長木 漢諾塔(三) Accepted 0 308 C/C++ 04-07 20:48:53

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved