• Xxy 的车厢调度


    Xxy 的车厢调度

    Description

    有一个火车站,铁路如图所示,每辆火车从 A 驶入,再从 B 方向驶出,同时它的车厢可以重新组合。假设从 A 方向驶来的火车有 n 节(n<=1000),分别按照顺序编号为 1,2,3,…,n。假定在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到 B处的铁轨上。另外假定车站 C 可以停放任意多节车厢。但是一旦进入车站 C,它就不能再回到 A 方向的铁轨上了,并且一旦当它进入 B 方向的铁轨,它就不能再回到车站 C。负责车厢调度的 xxy 需要知道能否使它以a1,a2,…,an 的顺序从 B方向驶出,请来判断能否得到指定的车厢顺序。

    Input

    输入文件的第一行为一个整数 n,其中 n<=1000,表示有 n 节车厢,第二行为 n 个数字,表示指定的车厢顺序。

    Output

    如果可以得到指定的车厢顺序,则输出一个字符串”YES”,否则输出”NO”(注意要大写,不包含引号)。还有,xxy 说了这题 AC 有糖吃。

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 int a[10001];
     5 int stack[10001];
     6 int top=0;
     7 int cur=1;
     8 int main()
     9 {
    10     //freopen("train.in","r",stdin);
    11     //freopen("train.out","w",stdout);
    12     int n;
    13     int cur=1;
    14     cin>>n;
    15     for(int i=1;i<=n;i++)
    16     cin>>a[i];
    17     for(int i=1;i<=n;i++)
    18     {
    19         
    20         while(cur<=a[i])//让比当前小的车厢依次入队
    21         {
    22             stack[++top]=cur++;
    23             //cur++;
    24         }
    25         if(stack[top]==a[i])//如果栈顶元素是要出栈的元素就让它出栈
    26             --top;
    27         else
    28         {
    29             cout<<"NO";//如果不是输出“NO”
    30             return 0;
    31         }
    32     }
    33     printf("YES");
    34     return 0;
    35 }
  • 相关阅读:
    Fast Member
    C++箴言:理解typename的两个含义
    网上资源工具
    WeakReference
    MonoGame教程
    The RAII Programming Idiom
    OpenGL Common Mistakes
    Finalize()、Dispose()、SafeHandle、GC
    Interop with Native Libraries
    C++计算几何库
  • 原文地址:https://www.cnblogs.com/wsdestdq/p/6731966.html
Copyright © 2020-2023  润新知