Cân đĩa (THTB Vòng Sơ loại)

Xem PDF

Điểm: 400 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho một cân hai đĩa và \(n\) quả cân có khối lượng đôi một khác nhau \(w_1, w_2, . . , w_n\). Tiến hành đặt lần
lượt từng quả cân lên một trong hai đĩa của cân và đảm bảo rằng tổng khối lượng bên trái luôn nhỏ
hơn hoặc bằng tổng khối lượng bên phải.

Yêu cầu: Cho \(n\) quả cân có khối lượng \(w_1, w_2, . . , w_n\), hãy đếm số cách xếp \(n\) quả cân thỏa mãn.

Hai cách được gọi là khác nhau nếu thứ tự xếp các quả cân khác nhau hoặc tồn tại một quả cân nằm
ở đĩa khác nhau.

Input

Vào từ thiết bị vào chuẩn có khuôn dạng:

  • Dòng 1: chứa số nguyên \(n\);
  • Dòng 2: chứa \(n\) số nguyên dương \(w_1, w_2, . . , w_n\).

Output

  • Ghi ra thiết bị ra chuẩn một dòng chứa một số nguyên là số cách xếp \(n\) quả cân lên đĩa.

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): \(n \le 7\)\(w_i \le 1000 (1 \le i \le n)\);
  • Subtask \(2\) (\(40\%\) số điểm): \(n \le 14\)\(w_i \le 1000 (1 \le i \le n)\);
  • Subtask \(3\) (\(20\%\) số điểm): \(n \le 28\)\(w_i = 2^{i−1} (1 \le i \le n)\).

Example

Test 1

Input
2
1 2
Output
3
Note

Ở ví dụ bên trái, có 8 cách sắp xếp các quả cân lên hai bàn cân như sau:

  1. Đặt quả cân 1 bên trái rồi đặt quả cân 2 bên trái;
  2. Đặt quả cân 1 bên trái rồi đặt quả cân 2 bên phải;
  3. Đặt quả cân 1 bên phải rồi đặt quả cân 2 bên trái;
  4. Đặt quả cân 1 bên phải rồi đặt quả cân 2 bên phải;
  5. Đặt quả cân 2 bên trái rồi đặt quả cân 1 bên trái;
  6. Đặt quả cân 2 bên trái rồi đặt quả cân 1 bên phải;
  7. Đặt quả cân 2 bên phải rồi đặt quả cân 1 bên trái;
  8. Đặt quả cân 2 bên phải rồi đặt quả cân 1 bên phải.
    Tuy nhiên chỉ có 3 cách (cách 4, 7, 😎 là đảm bảo trong toàn bộ quá trình sắp xếp các quả cân,
    đĩa bên trái luôn nhỏ hơn hoặc bằng đĩa cân bên phải.

Test 2

Input
3
10 11 12
Output
15

Bình luận