#CCBCHBAHAI0000079. Tách mảng thành mảng chẵn và mảng lẻ (Split an Array into Even and Odd Arrays)

    ID: 997 Loại: Thông thường 2000ms 256MiB Tried: 0 Đã chấp nhận: 0 Độ khó: 1 Đăng bởi: Nhãn>Programming language basicsStatic arraysIteration techniquesImplementation techniquesWorking with numbersInteger arithmetic

Tách mảng thành mảng chẵn và mảng lẻ (Split an Array into Even and Odd Arrays)

Tách mảng thành mảng chẵn và mảng lẻ (Split an Array into Even and Odd Arrays)

Nguồn: Phước Hưng OJ

Phiên bản: Phước Hưng OJ Extended

Đề bài

Cho mảng số nguyên a0,a1,…,an−1a_0,a_1,\ldots,a_{n-1}.

Tạo hai mảng theo thứ tự xuất hiện:

  • mảng EE gồm các phần tử chẵn, tức ai≡0(mod2)a_i\equiv0\pmod2;
  • mảng OO gồm các phần tử lẻ, tức ai≢0(mod2)a_i\not\equiv0\pmod2.

Nếu các chỉ số chẵn là e0<e1<⋯<ep−1e_0<e_1<\cdots<e_{p-1} thì

Ek=aek(0≤k<p).E_k=a_{e_k}\qquad(0\le k<p).

Tương tự, nếu các chỉ số lẻ là o0<⋯<oq−1o_0<\cdots<o_{q-1} thì

Ok=aok(0≤k<q).O_k=a_{o_k}\qquad(0\le k<q).

Ta có p+q=np+q=n.

Input

Dòng đầu chứa nn. Dòng thứ hai chứa nn số nguyên aia_i.

Output

Dòng 1 in pp rồi lần lượt các phần tử của EE. Dòng 2 in qq rồi lần lượt các phần tử của OO. Nếu một nhóm rỗng, dòng tương ứng chỉ chứa số 00.

Subtask

Subtask 1 (20 điểm): 1≤n≤101\le n\le 10, ∣ai∣≤103|a_i|\le 10^3.

Subtask 2 (30 điểm): 1≤n≤50001\le n\le 5000, ∣ai∣≤106|a_i|\le 10^6.

Subtask 3 (50 điểm): 1≤n≤2⋅1051\le n\le 2\cdot 10^5, ∣ai∣≤109|a_i|\le 10^9.

Ví dụ

Input

7
4 -3 0 9 8 -6 5

Output

4 4 0 8 -6
3 -3 9 5

Giải thích

Các số chẵn theo thứ tự là 4,0,8,−64,0,8,-6; các số lẻ theo thứ tự là −3,9,5-3,9,5.