Lớn nhất tập con

Xem dưới dạng PDF

Gửi bài giải


Điểm: 100
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Tý có một công ty có \(N = 2^K\) nhân viên, mỗi nhân viên có mã số từ 0 đến \(N-1\) và năng suất \(A[i]\). Giám đốc muốn chọn ra một nhóm làm việc. Một nhân viên mã \(x\) có thể dẫn dắt nhân viên \(y\) nếu \(x\) là tiền thân của y (\(x \subseteq y\)).

Với mỗi nhân viên \(mask\), hãy tìm năng suất lớn nhất trong số các nhân viên mà \(mask\) có thể dẫn dắt (kể cả chính \(mask\)). Nói cách khác, tính \(G[mask] = \max_{x \subseteq mask} A[x]\).

Đầu vào:

  • Dòng 1: \(N, K\) (\(N = 2^K, K \le 20\))
  • Dòng 2: \(N\) số nguyên \(A[0..N-1]\) (\(0 \le A[i] \le 10^9\))

Đầu ra:

  • \(N\) số nguyên \(G[mask]\) với mọi \(mask = 0..N-1\).

#

Định dạng đầu vào

  • Dòng 1: Số nguyên \(K\) (\(1 \le K \le 20\)).
  • Dòng 2: \(2^K\) số nguyên \(A[0], A[1], \dots, A[2^K-1]\) (\(0 \le A[i] \le 10^9\)).

Định dạng đầu ra

  • \(2^K\) số nguyên trên một dòng, số thứ i (\(0 \le i < 2^K\)) là giá trị lớn nhất trong tất cả \(A[j]\) với \(j \subseteq i\).

Ví dụ

Input:

2
1 4 2 5

Output:

1 4 2 5

Giải thích: Với mask 3 (\(11_2\)), các tập con là 0, 1, 2, 3 với các giá trị 1, 4, 2, 5 -> max là 5.

Ràng buộc & Subtasks

Subtask Điểm Ràng buộc
1 30% \(K \le 10\)
2 70% \(K \le 20\)

Nhận xét

Không có ý kiến tại thời điểm này.