poj 1363 Rails

题目链接:http://poj.org/problem?id=1363

解题思路:STL —— stack

 1 ///////////////////////////////////////////////////////////////////////////
 2 //problem_id: poj 1363
 3 //user_id: SCNU20102200088
 4 ///////////////////////////////////////////////////////////////////////////
 5 
 6 #include <algorithm>
 7 #include <iostream>
 8 #include <iterator>
 9 #include <iomanip>
10 #include <cstring>
11 #include <cstdlib>
12 #include <string>
13 #include <vector>
14 #include <cstdio>
15 #include <cctype>
16 #include <cmath>
17 #include <queue>
18 #include <stack>
19 #include <list>
20 #include <set>
21 #include <map>
22 using namespace std;
23 
24 ///////////////////////////////////////////////////////////////////////////
25 typedef long long LL;
26 const double PI=acos(-1.0);
27 ///////////////////////////////////////////////////////////////////////////
28 
29 ///////////////////////////////////////////////////////////////////////////
30 //Add Code:
31 ///////////////////////////////////////////////////////////////////////////
32 
33 int main(){
34     ///////////////////////////////////////////////////////////////////////
35     //Add code:
36     int n,i,j,t=1,a[1005];
37     stack<int> s;
38     while(scanf("%d",&n)!=EOF){
39         if(n==0) break;
40         if(t>1) printf("\n");
41         while(scanf("%d",&a[0]) && a[0]){
42             for(i=1;i<n;i++) scanf("%d",&a[i]);
43             j=0;
44             for(i=1;i<=n;i++){
45                 s.push(i);
46                 if(i==a[j]){
47                     s.pop();
48                     j++;
49                     while(!s.empty() && s.top()==a[j]){
50                         s.pop();
51                         j++;
52                     }
53                 }
54             }
55             printf(j==n? "Yes\n":"No\n");
56             while(!s.empty()) s.pop();
57         }
58         t++;
59     }
60     ///////////////////////////////////////////////////////////////////////
61     return 0;
62 }
63 
64 ///////////////////////////////////////////////////////////////////////////
65 /*
66 Testcase:
67 Input:
68 5
69 1 2 3 4 5
70 5 4 1 2 3
71 0
72 6
73 6 5 4 3 2 1
74 0
75 0
76 Output:
77 Yes
78 No
79 
80 Yes
81 */
82 ///////////////////////////////////////////////////////////////////////////

posted on 2013-08-15 22:30  SCNU20102200088  阅读(211)  评论(0编辑  收藏  举报

导航