Rails (UVA原题的链接单击这里哦?????)
Sample Input:?
-------------------------------------------------
5
1 2 3 4 5
5 4 1 2 3
0
6
6 5 4 3 2 1
0
0
-------------------------------------------------
Sample Output:?
-------------------------------------------------
Yes
No
Yes
-------------------------------------------------
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1024;
int coachs[MAXN];
int main() {
int n;
//这个应该代表输入n,并且n不为零,则运行while循环里面的,如果为零,则跳出循环
while (cin >> n, n) {
stack<int> s;
while (cin>>coachs[0],coachs[0]) {
for (int i = 1; i < n; ++i) {
cin >> coachs[i];
}
int aId = 1, bIndex = 0;//aId是进站车厢序号,bIndex是出站数组索引
bool ok = true;
while (bIndex < n) {
if (aId == coachs[bIndex]) {
aId++;
bIndex++;
} else if (!s.empty() && coachs[bIndex] == s.top()) {
s.pop();
bIndex++;
} else if (aId <= n) {
s.push(aId++);
} else {
ok = false;
break;
}
}
cout << (ok ? "Yes" : "No") << endl;//因为把Yes写成yes,所以一直不通过!
}
cout << endl;
}
return 0;
}