1 solutions
-
2
题意
输入火车长度 ,如果借助 C 车站,火车能从 A 方向到 B 方向,就输出 YES,否则输出 NO
PS:先进入 C 车站的车厢后出来(和栈一样)
思路
输入一个编号为 的车厢,如果有比 大的车厢在车站里,就输出 NO,否则就标记 已出站,并将 之前所有没进过车站的车厢都放进车站(因为只有 之前没进站的所有车厢进去, 号车厢才能进去)
代码
#include <bits/stdc++.h> using namespace std; int a[1005]; int main(int argc, char **argv){ int n; cin >> n; for (int i = 1;i <= n;i++){ int x; cin >> x; bool f = 1; for (int j = x + 1;j <= n;j++){ // 检测是否有比 x 大的数在栈里 if (a[j] == 1){ f = 0; break; } } if (!f){ // 如果有,就输出 NO 并退出 printf("NO"); return 0; } a[x] = 2; // 否则,标记 x 为已出栈状态 for (int j = 1;j < x;j++){ // 并标记 x 之前的数为入栈状态 if (a[j] != 2){ a[j] = 1; } } } printf("YES"); // 如果每个车厢都没问题,就输出 YES return 0; }
- 1
Information
- ID
- 842
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 84
- Accepted
- 21
- Uploaded By