zoukankan      html  css  js  c++  java
  • 天使之城(codevs 2821)

    2821 天使之城

     

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 黄金 Gold
     
     
    题目描述 Description

    天使城有一个火车站,每辆火车都从A方向驶入车站,
    再从B方向驶出车站。

    为了调度火车,火车站设有停放轨道,可存放5辆火车。已知从A进入车站顺序为1、2、3……。现在给你一个调度方案,判断是否可行,如果可行,输出出站顺序。
    有以下几种调度方法:
    A. 将A上的头一辆车驶出B方向
    B. 将A上的头一辆车停入暂停轨道
    C. 将暂停轨道上最外面的车驶出B方向

    输入描述 Input Description

    输入第一行一个整数N(n<30)表示调度方案步骤数目。
    下一行一个字符串,有N个大写字母,表示调度方法。

    输出描述 Output Description

    输出若不可行(暂停站满了还停车、暂停站空了还出车),则输出一行“No”。
    若可行,输出一行“Yes”,再输出若干行,每行一个整数,表示车出站序列。

    样例输入 Sample Input

    [样例输入1]
    6
    ABBCCA
    [样例输入2]
    5
    BACAC

    样例输出 Sample Output

    [样例输出1]
    Yes
    1
    3
    2
    4
    [样例输出2]
    No

    //STL大法好!!! 
    #include<cstdio>
    #include<iostream>
    #include<stack>
    #include<queue>
    #include<vector>
    #define M 43
    using namespace std;
    queue<int> q;
    stack<int> s;
    vector<int> v;
    int main()
    {
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
          q.push(i);
        for(int i=1;i<=n;i++)
        {
            char c;
            cin>>c;
            if(c=='A')
            {
                v.push_back(q.front());
                q.pop();
            }
            if(c=='B')
            {
                if(s.size()>=5)
                {
                    printf("No");
                    return 0;
                }
                s.push(q.front());
                q.pop();
            }
            if(c=='C')
            {
                if(!s.size())
                {
                    printf("No");
                    return 0;
                }
                v.push_back(s.top());
                s.pop();
            }
        }
        printf("Yes
    ");
        for(int i=0;i<v.size();i++)
          printf("%d
    ",v[i]);
        return 0;
    }
    View Code
  • 相关阅读:
    python_workone
    python___"TypeError: 'module' object is not callable"
    显示pycharm的行号
    pycharm切换python版本
    yum安装pip
    informix数据库常用命令(转)
    eclipse打不开的解决办法
    linux修改时间大全
    在安装mysqli的时候,出现error: ext/mysqlnd/mysql_float_to_double.h: No such file or directory
    Amazon Linux AMI 2015.09 (HVM)平台搭建lamp
  • 原文地址:https://www.cnblogs.com/harden/p/5619097.html
Copyright © 2011-2022 走看看