1. 程式人生 > 其它 >3-3 銀行業務佇列簡單模擬 (25 分)C++ Vetor

3-3 銀行業務佇列簡單模擬 (25 分)C++ Vetor

技術標籤:C++資料結構

**

3-3 銀行業務佇列簡單模擬 (25 分)

**
設某銀行有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 <vector>
using namespace std;
int main()
{
    vector<int> m1,m2;
    m1.reserve(1000);
    m2.reserve(1000);
    int n,num;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>
num; if(num>=1){ if(num%2!=0) { m1.push_back(num); } else { m2.push_back(num); } } } vector<int>::iterator it,it2;it=m1.begin();it2=m2.begin(); int flag=0; for(int i=0;i<=n;i++){ if
(i==0){ if(it!=m1.end()){ cout<<*it;it++; flag++; } else{ cout<<*it2;it2++; } } else{ if((flag==2||it==m1.end())&&it2!=m2.end()){ cout<<" "<<*it2; flag=0; it2++; } else if(it!=m1.end()){ flag++; cout<<" "<<*it; it++; } } } return 0; }

在這裡插入圖片描述