TLE-oj Cup Round 9 - Khôi phục số

Xem PDF

Nộp bài

Điểm: 1500 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 128M
Input: RECOVER.inp
Output: RECOVER.out

Tác giả:
Dạng bài

Từ một tập S gồm n số ban đầu, máy tính sẽ tạo ra 2^n - 1 số nguyên dương bằng cách tính tổng tất cả các tập con khác rỗng của tập S. Ví dụ như với tập S = {1, 2, 3}, máy tính sẽ tạo ra các số:

  • 3 = 1 + 2.
  • 4 = 1 + 3.
  • 5 = 2 + 3.
  • 6 = 1 + 2 + 3.
  • Các số 1, 2, 3 ban đầu.

Sau khi tạo ra các số, máy tính sẽ tráo đổi vị trí các số tạo được tạo thành một dãy số p, ví dụ dãy p có thể là (4, 3, 5, 2, 1, 3, 6). Nhiệm vụ của bạn là khôi phục lại tập S ban đầu và in ra các số trong tập S theo thứ tự từ nhỏ đến lớn.

Input, Output và Subtasks

Input: (RECOVER.inp)
  • Dòng đầu gồm số nguyên dương duy nhất n.
  • Dòng tiếp theo gồm 2^n - 1 số nguyên dương p_1, p_2, ..., p_n (p_i \le 10^{18}).
Output: (RECOVER.out)
  • In ra các số trong tập S theo thứ tự từ nhỏ đến lớn.
Subtasks
  • Subtask 1 (30\%): n = 2.
  • Subtask 2 (30\%): n = 3.
  • Subtask 3 (20\%): n \le 5.
  • Subtask 4 (20\%): n \le 20.

Sample

Input (RECOVER.inp)
3
4 3 5 2 1 3 6
Output (RECOVER.out)
1 2 3
Note
  • Chú thích trên đề bài.

Bình luận

Không có bình luận nào.