码迷,mamicode.com
首页 > 其他好文 > 详细

zoj 2338 The Towers of Hanoi Revisited

时间:2015-09-11 12:03:14      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<stack>
 4 using namespace std;
 5 stack<int> a[3];
 6 int b[60];
 7 int q=0;
 8 int solve(int from,int to)
 9 {
10     if(a[from].empty())
11     {//-1有错
12         return -1; 
13     }
14     if(!a[to].empty())//a[to].top()有可能为空,要先进行判断
15         if(a[from].top()>a[to].top())
16             return -1; 
17     a[to].push(a[from].top());
18     a[from].pop();
19     return 0;
20 }
21 void empty()
22 {
23     int i;
24     for(i=0;i<3;i++)
25     {
26         if(!a[i].empty())
27             a[i].pop();
28     }
29 }
30 int main()
31 {
32     int T,n,m,i,j,from,to,get;
33     while(cin>>T)
34     {
35         while(T--)
36         {
37             cin>>n>>m;
38             for(i=n;i>0;i--)
39                 a[0].push(i);
40             for(j=1;j<=m;j++)
41             {
42                 cin>>from>>to;
43                 get=solve(from-1,to-1);
44                 if(get==-1)
45                 {
46                     b[q++]=0-j;
47                     empty();//每次退出时应该把栈的内容清空
48                     while(j<m)//要等输入完成才能退出本次循环
49                     {
50                         j++;
51                         cin>>from>>to;
52                     }
53                     break;
54                 }
55                 if(a[0].empty()&&a[1].empty()&&a[2].top()==1)
56                 {    
57                     b[q++]=j;
58                     empty();
59                     while(j<m)
60                     {
61                         j++;
62                         cin>>from>>to;
63                     }
64                     break;
65                 }else if(j==m)
66                 {    
67                     b[q++]=0;
68                     empty();
69                 }
70             }    
71         }
72         for(i=0;i<q;i++)
73             cout<<b[i]<<endl;
74     }
75     return 0;
76 }

 

zoj 2338 The Towers of Hanoi Revisited

标签:

原文地址:http://www.cnblogs.com/xdbingo/p/4800140.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!