CTDL - set9 - Phần tử trung vị trên set
Trạng thái

Cho một dãy \(N\) số nguyên \(a_1, a_2, ... , a_N\) đôi một khác nhau.

Ta định nghĩa phần tử trung vị của một dãy \(K\) số nguyên như sau: Sắp xếp các phần tử trong dãy \(K\) số nguyên trên theo thứ tự tăng dần. Sau khi sắp xếp xong:

  • Nếu \(K\) lẻ, phần tử trung vị của dãy \(K\) số nguyên sẽ là phần tử thứ \((K + 1)/2\)
  • Nếu \(K\) chẵn, phần tử trung vị của dãy \(K\) số nguyên sẽ là phần tử thứ \(K/2\).

Yêu cầu

Với mỗi \(i\) \((1 ≤ i ≤ N)\), hãy in ra phần tử trung vị của dãy \(a_1, a_2, ... , a_i.\)

Input:

  • Dòng đầu tiên chứa 1 số nguyên dương \(N\) \((1 ≤ N ≤ 10^5).\)
  • Dòng tiếp theo chứa \(N\) số nguyên \(a_1, a_2, ... , a_N\) \((|a_i| ≤ 10^9\)).

Output

In ra trên \(N\) dòng, dòng thứ \(i\) là giá trị phần tử trung vị của dãy \(a_1 → a_i\).

Example

INPUT OUTPUT
\(7\)
\(3\) -\(1\) \(4\) \(2\) \(1\) -\(2\) \(6\)
\(3\)
-\(1\)
\(3\)
\(2\)
\(2\)
\(1\)
\(2\)

Gợi ý: Sử dụng Set, thêm từng phần tử vào trong Set. Song song với đó, ta duy trì một con trỏ ở trên Set sao cho con trỏ luôn nằm ở phần tử trung vị của dãy.

Thông tin
Thông tin bài tập
Gửi bài giải
Điểm
100
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
977 M
I/O
stdin -> stdout
Tác giả
Loại đề bài
C - Cấu trúc dữ liệu nâng cao: 05 - Set
Ngôn ngữ cho phép
C#, C++, Java, Python