#129. Chênh lệch biến đổi dãy số (DIFFE)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho một dãy gồm n số nguyên dương. Ta thực hiện một quy trình rút gọn dãy này bằng cách lặp lại thao tác sau cho đến khi dãy chỉ còn đúng một phần tử:

  1. Chọn hai phần tử bất kỳ a b đang có trong dãy.
  2. Xóa a b .
  3. Thêm một phần tử mới có giá trị bằng a \times b + 1 vào dãy.

Gọi V_{max} là giá trị lớn nhất có thể đạt được. Gọi V_{min} là giá trị nhỏ nhất có thể đạt được.

Hãy tính hiệu số M = V_{max} - V_{min} .

Dữ liệu:

  • Dòng đầu tiên chứa một số nguyên dương n .
  • n dòng tiếp theo, mỗi dòng chứa một số nguyên dương.
  • Dòng tiếp theo chứa số 0 , biểu thị kết thúc dữ liệu nhập.

Kết quả:

  • Xuất ra duy nhất một số nguyên là giá trị M tìm được.

Ví dụ:

Dữ liệu:

3
1
2
3
0

Kết quả:

2

Giải thích:

  • Để tìm V_{max} : Kết hợp (1, 2) \rightarrow 1\times2+1=3 . Tập còn {3, 3}. Kết hợp (3, 3) \rightarrow 3\times3+1=10 .
  • Để tìm V_{min} : Kết hợp (2, 3) \rightarrow 2\times3+1=7 . Tập còn {1, 7}. Kết hợp (1, 7) \rightarrow 1\times7+1=8 .
  • Kết quả M = 10 - 8 = 2

Giới hạn:

  • 0 \le n \le 50000 .
  • Đảm bảo mọi kết quả tính toán trung gian và kết quả cuối cùng đều nằm trong phạm vi của số nguyên có dấu 32-bit.