天天看點

PTA 7-3 銀行業務隊列簡單模拟

設某銀行有A、B兩個業務視窗,且處理業務的速度不一樣,其中A視窗處理速度是B視窗的2倍 —— 即當A視窗每處理完2個顧客時,B視窗處理完1個顧客。給定到達銀行的顧客序列,請按業務完成的順序輸出顧客序列。假定不考慮顧客先後到達的時間間隔,并且當不同視窗同時處理完2個顧客時,A視窗顧客優先輸出。

#include <cstdio>
using namespace std;
const int MAXN = 1010;
int a[MAXN], b[MAXN], cnta, cntb;
int main() {
    cnta = cntb = 0;
    int n; scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        int temp; scanf("%d", &temp);
        if (temp % 2) a[++cnta] = temp;
        else b[++cntb] = temp;
    }
    int flag = 0, x = 1, y = 1;
    while (x <= cnta || y <= cntb) {
        if (x <= cnta) { if (flag++) printf(" "); printf("%d", a[x++]); }
        if (x <= cnta) { if (flag++) printf(" "); printf("%d", a[x++]); }
        if (y <= cntb) { if (flag++) printf(" "); printf("%d", b[y++]); }
    }
    return 0;
}