DS 큐 ---- 은행 간단한 시뮬레이션

제목 설명

각 창 A를 프로세스 고객 (2)의 완료를, B는 윈도우 (1)를 처리 할 때, 즉 - 뱅크 A를 제공한다, B 개의 창구 서비스 처리 속도는 윈도우의 윈도우 B의 2 배의 처리 속도이고, 동일하지 고객. 고객 은행의 순서 감안할 때, 출력 시퀀스의 기업 고객에 의해 주문을 완료하시기 바랍니다. 어떤 고객이 없다고 가정하면 간격이 도착하는 시간을 고려해야하고, 다른 창은 동시에 두 개의 고객, 고객 우선 순위 출력 창을 처리 할 때.

 

기입

라인 입력은 제 번호 N (상기 양의 정수이다 ≤1000) 고객의 총 개수는 N 비트의 고객 번호 하였다. 홀수 비즈니스를 수행하기 위해 창 A는 고객의 요구를 번호, 고객의 짝수 B 창에 갔다. 숫자 사이에 공백으로 구분.

 

수출

고객 번호의 보도 거래 완료 시퀀스 출력. 숫자 사이에 공백으로 구분하지만, 마지막 숫자 후 여분의 공간을 가질 수 없습니다.

 

샘플 입력

8 2 1 3 9 11 4 13 15

샘플 출력

1 2 3 9 11 4 13 15

신속한

사용법 #include <iostream> 
#INCLUDE <큐>
 사용  스페이스 성병;
int로 주 () 
{ 
    INT에 해당하는 단계; 
    CIN >> N;
    INT * A = 새로운  INT [N];
    위한 ( INT 난 = 0 ; I <N; I ++ ) 
    { 
        CIN >> A [I]; 
    }  < INT > a 및  < INT > B;
    위한 ( INT 난 = 0 ; I <N; I ++ )
    { 
        경우 (a [i]를 % 2 ! = 0 ) 
            A.push (a [I]); 
        다른 
            B.push (a [I]); 
    } 
    INT의 myclock = 1 ;
    INT 태그 = 0 ;
    반면 (A.empty () ||! B.empty ()) 
    { 
        경우 (A.empty () 태그 &&! == 0 ) 
        { 
            COUT << A.front (); 
            A.pop (); 
            태그 ++ ; 
        } 
        다른  경우 (! A.empty () && 태그! = 0 ) 
        { 
            COUT << "  " << A.front (); 
            A.pop (); 
        } 
        경우 (B.empty () 태그 &&! == 0 && myclock % (2) == 0 ) 
        { 
            COUT << B.front (); 
            () B.pop; 
            태그 ++ ; 
        } 
        다른  경우 (! B.empty () 태그 &&! = 0 && myclock % (2) == 0 ) 
        { 
            COUT << "  " << B.front (); 
            비.
        } 
        myclock ++ ; 
    }
    삭제 ] [A]
    반환  0 ; 
}

추천

출처www.cnblogs.com/SZU-DS-wys/p/12180718.html