本文主要是介绍例题6-2 铁轨(Rails,ACM/ICPC CERC,UVa 514),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接:https://vjudge.net/problem/UVA-514
分类:栈
备注:水题
前言:回顾的时候以为很水,但没有想象的那么水,实现起来还是有点麻烦的,再多看看作者的代码,思考一下怎么写出优美的代码吧。
代码如下:
#include<cstdio>
#include<stack>
using namespace std;
const int maxn = 1000 + 5;
int N;
bool solve()
{int a[maxn], cnt = 1, x = 1;stack<int>tmp;for (int i = 1; i <= N; i++){scanf("%d", &a[i]);if (!a[i])return false;}while (x <= N){while ((tmp.empty() || tmp.top() != a[cnt]) && x <= N)tmp.push(x++);while (!tmp.empty() && tmp.top() == a[cnt])tmp.pop(), cnt++;}if (tmp.empty())printf("Yes\n");else printf("No\n");return true;
}
int main(void)
{while (scanf("%d", &N) == 1 && N){while (solve());printf("\n");}return 0;
}
这篇关于例题6-2 铁轨(Rails,ACM/ICPC CERC,UVa 514)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!