Codeforces 라운드 # 563 (사업부. 2) B

B.Ehab은 이상한 사람이다

주제 링크 : http://codeforces.com/contest/1174/problem/B

이름

당신은 길이 n의 배열 a를 제공하고 있습니다. 당신은 당신이 원하는대로에 많은 시간을 다음과 같은 작업을 수행 할 수 있습니다 :

두 개의 정수 i와 j (1≤i, j≤n) 등 AI +의 AJ가 이상한 것을, 다음 AI 및 AJ 스왑을 선택합니다.

무엇 전적으로 당신이 얻을 수있는 가장 작은 배열입니다?

어레이 X 인덱스가 존재하는 경우, 어레이 (Y)보다 사전 작은 내가되도록 XI <모든 1≤j위한 이순신 및 XJ = YJ <I. 이하 공식적가 다를 I 상기 제 1 인덱스, XI <이순신에

입력
첫번째 줄은 정수 N 포함 된
상기 어레이 내의 요소들의 개수 - (1≤n≤105 참조).
배열 a의 요소 - 번째 행은 N 개의 공간 분리 된 정수 A1, A2, ..., (1≤ai≤109)을 포함한다.

 

출력
단 라인 N에 포함 된
공간으로 구분 된 정수가 획득 할 수있는 최소의 사전 식 배열.

문제의 의미

사전 편찬 배열, 변환 후 배열 출력을 최소화하기 위해, 두 숫자를 교환, 당신에게 길이 A의 배열, 홀수 선택 두 숫자를 부여합니다.

생각

홀수 및 짝수, 홀수 또는 짝수 번만 다음 홀수 두 개수가있을 수를 계산되도록 직접 라인 원래 배열 출력

만큼 짝수 또는 홀수이 있으므로,이를 출력이 후 정렬 될 수 있도록 긴 같이 단조롭게 증가하는 배열에 다양한 방법으로 조정될 수있다.

 

 

// 
//은 19-6-4에 hjy 작성.
//
 
#INCLUDE <비트 / stdc ++ H.>
 사용  스페이스 성병; 
타입 정의  LL;
CONST의  INT maxn 2E5 + = 10 ;
INT 의 main () 
{ 
    INT의 N;
    반면 (CIN >> N) 
    { 
        LL A [maxn]; 
        부울 플래그 = 거짓 , 인 flag1 = 거짓 ;
        위한 ( int로 I = 0 ; I <N은, 내가 ++ ) 
        { 
            CIN >>일체 포함];
            경우 (a [I] 1 ) 
                플래그 = ;
            다른 
                인 flag1 = 진정한 ; 

        } 
        경우 (플래그 && 인 flag1) 
            정렬 (a하는 +의 N); 
        복사 (a하는 + N, ostream_iterator와 <LL> (COUT, "  " )); 
        COUT << ENDL; 
    } 
    반환  0 ; 
}

 

추천

출처www.cnblogs.com/Vampire6/p/10989806.html