1. 주제
각 창 A를 프로세스 고객 (2)의 완료를, B는 윈도우 (1)를 처리 할 때, 즉 - 뱅크 A를 제공한다, B 개의 창구 서비스 처리 속도는 윈도우의 윈도우 B의 2 배의 처리 속도이고, 동일하지 고객. 고객 은행의 순서 감안할 때, 출력 시퀀스의 기업 고객에 의해 주문을 완료하시기 바랍니다. 어떤 고객이 없다고 가정하면 간격이 도착하는 시간을 고려해야하고, 다른 창은 동시에 두 개의 고객, 고객 우선 순위 출력 창을 처리 할 때.
입력 형식 :
라인 입력은 제 번호 N (≤1000) 고객의 총 개수는 N 비트 고객의 수에 따라, 상기 양의 정수이다. 홀수 비즈니스를 수행하기 위해 창 A는 고객의 요구를 번호, 고객의 짝수 B 창에 갔다. 숫자 사이에 공백으로 구분.
출력 형식 :
고객 번호의 보도 거래 완료 시퀀스 출력. 숫자 사이에 공백으로 구분하지만, 마지막 숫자 후 여분의 공간을 가질 수 없습니다.
샘플 입력 :
8 2 1 3 9 4 11 13 15
샘플 출력 :
1 3 2 9 11 4 13 15
2. 주제 분석
(가)에도 B의 출력을 선택하여 출력에 대응, 창 B는 A, B의 홀수로 두 개의 큐를 선언 할 때 최종적 후 남은 두 속성의 나머지를 계속 두 출력 A, 그것
3. 코드
#include<iostream>
#include<queue>
using namespace std;
int main()
{
int amount;
cin >> amount;
queue<int>a;
queue<int>b;
for (int i = 0; i < amount; i++)
{
int temp;
cin >> temp;
if (temp % 2 == 0)
b.push(temp);
else
a.push(temp);
}
int count = 0;//控制空格的输出
while (!a.empty() && !b.empty())
{
for (int i = 0; i < 2&&!a.empty(); i++)
{
if (count == 0)
{
cout << a.front();
a.pop();
count++;
}
else
{
cout << " " << a.front();
a.pop();
}
}
if (count == 0)
{
cout << b.front();
b.pop();
count++;
}
else
{
cout << " " << b.front();
b.pop();
}
}
while (!a.empty())
{
if (count == 0)
{
cout << a.front();
a.pop();
count++;
}
else
{
cout << " " << a.front();
a.pop();
}
}
while (!b.empty())
{
if (count == 0)
{
cout << b.front();
b.pop();
count++;
}
else {
cout << " " << b.front();
b.pop();
}
}
}