PTA 数据结构 银行业务队列简单模拟

仅供参考,请勿粘贴

设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。

输入格式:

输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。

输出格式:

按业务处理完成的顺序输出顾客的编号。数字间以空格分隔,但最后一个编号后不能有多余的空格。

输入样例:

8 2 1 3 9 4 11 13 15

输出样例:

1 3 2 9 11 4 13 15
#include <iostream>
#include <cstdio>
#include <string>
#include <cmath>
#include <deque>
#include <algorithm>
#include <vector>
#include <stack>
using namespace std;
const int maxn = 1010;
int main()
{
    deque<int> winA;
    deque<int> winB;
    int n;
    ios::sync_with_stdio(false);
    cin>>n;
    int cus;
    for(int i=0;i<n;i++)
    {
        cin>>cus;
        if(cus&1)
            winA.push_back(cus);
        else
            winB.push_back(cus);
    }
    while(!winA.empty()||!winB.empty())
    {
        int index = 2;
        while(index&&!winA.empty())
        {
            index--;
            int s = winA.front();
            winA.pop_front();
            cout<<s;
            if(winA.empty()&&winB.empty())
                cout<<endl;
            else
                cout<<" ";
        }
        if(!winB.empty())
        {
            int s =winB.front();
            winB.pop_front();
            cout<<s;
            if(winA.empty()&&winB.empty())
                cout<<endl;
            else
                cout<<" ";
        }
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C语言及其他语言

[每日一题]简单编码

题目描述 最近Kingly对编码很感兴趣,于是从网上找了一些编码原则来对字符串做实验。由于Kingly一直很忙,所以希望你这位编程高手来替他解决这个问题。下面是...

2846
来自专栏数据结构与算法

洛谷P3195 [HNOI2008]玩具装箱TOY(单调队列优化DP)

题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器...

2719
来自专栏鬼谷君

python 练习多级菜单思路

711
来自专栏数据结构与算法

P1294 高手去散步

题目背景 高手最近谈恋爱了。不过是单相思。“即使是单相思,也是完整的爱情”,高手从未放弃对它的追求。今天,这个阳光明媚的早晨,太阳从西边缓缓升起。于是它找到高手...

2618
来自专栏数据结构与算法

P3381 【模板】最小费用最大流

题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。 输入输出格式 输入格式: 第...

3307
来自专栏用户2442861的专栏

买卖股票最多K次

给定一个大小为n的数组,数组的元素a[i]代表第i天的股票价格。 设计一个算法,计算在最多允许买卖k次(一买一卖记为一次)的条件下的最大收益。 需要注意的...

573
来自专栏数据结构与算法

2017.10.23解题报告

预计分数:100+60+0=160 实际分数:100+80+0=180 T1 题目描述 现在有一个字符串,每个字母出现的次数均为偶数。接下来我们把第一次出现的字...

3055
来自专栏数据结构与算法

10.25解题报告

预计分数:40+50+4=94 实际分数:30+15+0=45 T1 https://www.luogu.org/problem/show?pid=T14791...

2544
来自专栏CodingToDie

Python学习(十):有趣的字符串

第10 章 Python 字符串 学的到东西的事情是锻炼,学不到的是磨练 Table of Contents 字符串更新 转义字符 原始字符串 运算 连接 重复...

3527
来自专栏数据小魔方

函数|多条件求和——SUMPRODUCT函数

今天跟大家分享一个在多条件求和方面特别厉害的函数——SUMPRODUCT。 ▼ 也许大家对sum函数都很熟悉,知道它强大的求和功能。单数如果遇到多条件的求和场景...

2684

扫码关注云+社区