銀行業務キューの簡易シミュレーション(キューアプリケーション)

       銀行に A と B の 2 つの営業窓口があり、処理速度が異なるとします。窓口 A の処理速度は窓口 B の 2 倍、つまり窓口 A が 2 人の顧客の処理を完了するとき、窓口 B は 1 人の顧客の処理を完了します。お客様。銀行に到着する顧客の順序を考慮して、業務が完了した順序で顧客の順序を出力してください。次々に来店する顧客の時間間隔は考慮せず、異なる窓口で同時に2人の顧客を処理した場合、窓口Aの顧客が先に出力されるものとする。

入力形式:

入力は正の整数の行で、最初の数値 N (≤1000) は顧客の総数で、その後に N 顧客の数が続きます。奇数番号のお客様はA窓口へ、偶数番号のお客様はB窓口へご対応ください。数字はスペースで区切ります。

出力フォーマット:

業務処理が完了した順に顧客番号を出力します。数字はスペースで区切る必要がありますが、最後の数字の後に余分なスペースを入れないでください。

入力例:

8 2 1 3 9 4 11 13 15

出力サンプル:

1 3 2 9 11 4 13 15

コード長制限

16KB

制限時間

400ミリ秒

メモリ制限

64MB

#include<iostream>
#include<queue>
using namespace std;
int main()
{
	queue<int> a, b;
	int n,t;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> t;
		if (t % 2 == 1)
			a.push(t);
		else
			b.push(t);
	}
	int flag = 2;
	while (!a.empty() || !b.empty())
	{
		n--;
		if ((flag == 1||flag==2) && !a.empty())
		{
			cout << a.front();
			a.pop();
			flag--;
		}
		else
		{
			cout << b.front();
			b.pop();
			flag = 2;
		}
		if (n != 0)
			cout << " ";
	}
}

おすすめ

転載: blog.csdn.net/qq_74156152/article/details/133563763