Uva - 514 - Rails
2015-06-14 16:29
387 查看
C是一个栈,每次先检查A的第一个元素是否满足,如果满足,直接进入B;再检查C中栈顶元素是否满足,如果满足,出栈进入B;前两步都不满足将A放入C栈中。循环到B满或者A,C中都不满足条件并且A空,第一种情况成功,第二种情况失败。
AC代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cctype> #include <cstring> #include <string> #include <sstream> #include <vector> #include <set> #include <map> #include <algorithm> #include <stack> #include <queue> #include <bitset> #include <cassert> using namespace std; const int maxn = 1010; int bRail[maxn]; int main() { int n; while (scanf("%d", &n) == 1 && n) { stack<int> s; memset(bRail, 0, sizeof(bRail)); while (scanf("%d", &bRail[1]) == 1 && bRail[1]) { for (int i = 2; i <= n; i++) { scanf("%d", &bRail[i]); } int A = 1, B = 1; int ok = 1; while (B <= n) { if (A == bRail[B]) { // 先看A中第一个是否满足B A++; B++; } else if (!s.empty() && s.top() == bRail[B]) { // 再看栈顶车厢是否满足 s.pop(); B++; } else if (A <= n) { // 都不满足就让A的车厢入栈 s.push(A++); } else { // B没有满,但是没有满足的情况了,失败 ok = 0; break; } } printf("%s\n", ok ? "Yes" : "No"); } printf("\n"); } return 0; }
相关文章推荐
- 关于main函数的参数列表 String[] agrs
- RT-thread main函数分析
- The source attachment does not contain the source for the file xxx class
- Shallow heap & Retained heap
- Leetcode[72]-Climbing Stairs
- (转) error: linker command failed with exit code 1 (use -v to see invocation)
- 07Exchange Server 2010跨站点部署-Mailbox部署
- 06Exchange Server 2010跨站点部署-Mailbox网卡配置
- ContextPair API
- ContextPair API
- 使用thumbnailator 时部分图片抛异常
- 程序bug太多,可以用Facebook的开源AI工具
- 利用AIDL来实现由Binder进行进程间通信(IPC)
- AIDL的简单使用
- kernel: iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-7260-13.ucode failed with error -2
- Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-2.xml, reason:
- Test run failed:Unable to find instrumentation target package
- http://blog.csdn.net/tx18/article/details/46319095
- DELL磁盘阵列控制卡(RAID卡)MegaCli常用管理命令汇总
- Opencontrail CentOS66编译全过程