lo

Tổng dãy con

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho dãy ~a~ gồm ~n~ phần tử nguyên dương. Hãy đếm số tổng khác nhau có thể tạo ra từ các dãy con của ~a~ (không tính dãy rỗng).

Input

  • Dòng thứ nhất chứa số nguyên dương ~n~ miêu tả số phần tử trong dãy.
  • Dòng thứ hai gồm ~n~ phần tử miêu tả dãy ~a~.

Output

  • Gồm một số nguyên dương miêu tả kết quả bài toán.

Constraints

  • ~1 \le n \le 1000~
  • ~0 < a_i \le 1000~.

Input

3
1 4 5

Output

6

Subtasks

  • Subtask ~1~: ~n \le 20~ ~(30\%)~
  • Subtask ~2~: ~n \le 50~ ~(40\%)~
  • Subtask ~3~: Không có ràng buộc gì thêm ~(30\%)~

Lệnh an toàn

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Một nhóm kỹ sư tại trung tâm điều khiển Robot đang thiết kế một chuỗi lệnh điều khiển. Mỗi chuỗi lệnh phải tuân theo một cấu trúc an toàn để robot không bị lỗi khi thực thi. Cấu trúc an toàn này có thể được biểu diễn bằng một biểu thức lệnh đúng, được định nghĩa như sau:

Một chuỗi lệnh rỗng là biểu thức đúng.

Nếu ~A~ là biểu thức đúng, thì ~⟨A⟩~) cũng là biểu thức đúng.

Nếu ~A~ và ~B~ là biểu thức đúng, thì ~AB~ cũng là biểu thức đúng.

Robot có một bảng điều khiển gồm ~n~ vị trí (đánh số từ ~1~ đến ~n~), mỗi vị trí tương ứng với một nút có thể lập trình một phần của biểu thức lệnh.

Tại mỗi vị trí ~i~, kỹ sư có thể:

  • Gán nút đó là một lệnh mở ~(~, và tăng độ ổn định ~s~ lên ~a_i~.

  • Gán nút đó là một lệnh đóng ~)~, và giảm ~s~ đi ~a_i~.

  • Bỏ qua vị trí này (không đặt gì).

Sau khi hoàn tất lựa chọn, ta tạo ra chuỗi lệnh bằng cách nối các ký tự đã được chọn từ trái sang phải, chỉ gồm các dấu ~(~ hoặc ~)~, và nó phải tạo thành một biểu thức đúng như định nghĩa ở trên.

Nhiệm vụ của bạn là chọn các vị trí sao cho chuỗi lệnh tạo ra là một biểu thức đúng, và giá trị ~s~ thu được là lớn nhất có thể.

Input

  • Dòng đầu tiên gồm số nguyên dương ~n~.
  • Dòng thứ hai gồm ~n~ số nguyên ~a_1, a_2, . . . , a_n ( |a_i| \le 10^9)~

Output

  • In ra một số nguyên duy nhất là giá trị ~s~ lớn nhất có thể chọn được.
Test mẫu

Input

4
0 -5 1 2

Output

5

Input

9
5 -2 2 3 -4 -4 -1 -2 9

Output

21

Subtask

  • Subtask 1 ~(25\%)~: ~n \le 10~.
  • Subtask 2 ~(25\%)~: ~n \le 10^3~.
  • Subtask 3 ~(25\%)~: ~n \le 10^5~ và không có quá ~10^3~ giá trị ~a_i~ khác ~0~.
  • Subtask 4 ~(25\%)~: ~n \le 10^5~.

Kết nối nhà thám hiểm

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Hai nhà thám hiểm đang bị chia cắt trong một miệng núi lửa rộng lớn đã bị đóng băng trong suốt mùa đông. Miệng núi lửa có dạng hình chữ nhật gồm ~n~ hàng và ~m~ cột, mỗi ô trong bản đồ có thể là:

  • Đá băng (không thể đi qua),
  • Đất mềm (có thể đi qua),
  • hoặc vị trí của một nhà thám hiểm.

Với sự ấm lên toàn cầu, mỗi ngày trôi qua, các khối đá băng tiếp giáp với đất mềm (ở bốn hướng: trên, dưới, trái, phải) sẽ tan ra, biến thành đất mềm mà thám hiểm gia có thể bước vào.

Hai nhà thám hiểm chỉ có thể di chuyển qua các ô đất mềm, và họ muốn tìm đường đến với nhau càng sớm càng tốt.

Yêu cầu: Hãy xác định số ngày ít nhất cần thiết để hai nhà thám hiểm có thể gặp nhau.

Input

Dòng đầu tiên có 2 số nguyên ~n, m~

~n~ dòng tiếp theo, mỗi dòng có ~m~ kí tự mô tả bản đồ vào thời điểm bắt đầu: '.' thể hiện 1 ô đất mềm, 'X' thể hiện 1 ô bị đóng băng, và 'L' thể hiện vị trí nhà thám hiểm. Có chính xác 2 ô chữ L.

Output

In ra một số nguyên là số ngày ít nhất mà 2 nhà thám hiểm có thể gặp nhau

Test mẫu

Input

10 10
LXXXXXXXXX
XX.X...XXX
XXX.X.X.XX
XX.X.X.X.X
X..X.X.X.X
X.XXX.X..X
X.X.X.X.XX
X.X...X.XX
XX.X.XXX.X
XXXXXXXXLX

Output

2

Giải thích

Bản đồ của ngày 1

LX.X...XXX
X.......XX
XX.......X
X.........
..........
..........
.........X
.........X
X.....X...
XX.X.XXXLX

Bản đồ của ngày 2

L..X....XX
.........X
X.........
..........
..........
..........
..........
..........
..........
X.....X.L.

Subtask

  • Subtask 1 ~(100\%)~: ~n, m <= 1500~

Nitori và cờ

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Trong một lễ hội truyền thống ở làng Kappa, Nitori Kawashiro được giao nhiệm vụ thiết kế một lá cờ hiệu dài để treo dọc trên con phố chính.

Lá cờ được mô tả như một lưới có kích thước ~n~ dòng và ~m~ cột. Mỗi ô trên cờ có thể là:

Ký tự #: đại diện cho vải màu đen.

Ký tự .: đại diện cho vải màu trắng.

Tuy nhiên, để phù hợp với thẩm mỹ truyền thống, các cột liên tiếp trên lá cờ cần tuân thủ quy tắc:

Mỗi đoạn các cột cùng màu (toàn # hoặc toàn .) phải có độ dài ít nhất là ~x~ cột và nhiều nhất là ~y~ cột.

Do một sự cố trong khâu sản xuất, lá cờ đã bị làm sai. Để tiết kiệm chi phí, Nitori muốn sửa đổi ít ký tự nhất trên lá cờ để nó đáp ứng yêu cầu về màu sắc và độ dài đoạn cột cùng màu như trên.

Yêu cầu: Hãy giúp Nitori tính ra số ký tự ít nhất cần thay đổi để lá cờ trở nên hợp lệ.

Input

Dòng đầu tiên chứa bốn số nguyên dương ~n, m, x, y~ lần lượt là số dòng, số cột, số cột cùng màu tối thiểu, và số cột cùng màu tối đa.

~n~ dòng tiếp theo, mỗi dòng gồm ~m~ ký tự # hoặc . — mô tả trạng thái ban đầu của lá cờ.

Output

Gồm một số nguyên là số lượng ký tự ít nhất cần sửa để lá cờ hợp lệ.

Test mẫu

Input

6 5 1 2
##.#.
.###.
###..
#...#
.##.#
###..

Output

11

Subtask

Subtask 1 ~(100\%)~: ~1 ≤ n, m, x, y ≤ 1000~


Explosion

Nộp bài
Time limit: 2.0 / Memory limit: 256M

Point: 100

Megumin đang chiến đấu ở trên một bãi quái vật. Bãi quái gốm ~N~ con quái vật, con quái thứ ~i~ có lượng máu là ~H_i~. Megumin có 2 kĩ năng như sau:

  • Burn: Megumin niệm chiêu lên 1 con quái ~i~ bất kỳ, gây 1 sát thương cho con quái này. Kĩ năng này tiêu hao 1 MP.
  • Explosion: Megumin niệm chiêu lên 1 con quái ~i~ bất kỳ, gây ~X~ sát thương cho con quái này.
    • Nếu con quái có ~H(i) > X~ máu, nó sẽ mất ~X~ máu
    • Nếu con quái có ~H(i) <= X~ máu, nó sẽ chết với một vụ nổ, gây ~H(i) - 1~ sát thương cho những con quái cạnh nó (con quái thứ ~i-1~ và ~i+1~). Nếu vụ nổ đủ sát thương để hạ gục con quái thứ ~i - 1~ hay ~i + 1~ thì nó sẽ tiếp tục phát nổ gây ~H(i - 1) - 1~ hoặc ~H(i + 1) - 1~ sát thương lên những con quái tiếp theo cho đến khi hết quái lân cận hoặc có quái đỡ được sát thương vụ nổ.
  • Kĩ năng này tiêu tốn ~X~ MP và sau khi dùng kĩ năng này thì cô không thể dùng thêm kĩ năng được nữa.

Megumin muốn tiêu diệt bãi quái này một cách gọn gàng và đơn giản, do đó cô nhờ bạn tính xem lượng MP thấp nhất mà cô cần dùng để tiêu diệt hết bãi quái này là bao nhiêu

Ràng buộc

~N <= 10~5

~1 <= H~i ~<= 10~9

Input

Gốm 2 dòng:

  • Dòng 1: chứa số nguyên ~N~, số lượng quái có trong bãi quái vật
  • Dòng 2: chứa ~N~ số nguyên, lượng máu tương ứng của mỗi con quái vật

Output

Gồm 1 số nguyên duy nhất là kết quả của bài toán

Sample

  • Input
3
1 1 1
  • Output
3

Note

Megumin sử dụng Burn vào mỗi con quái 1 lần

  • Input
9  
1 2 3 2 2 2 3 2 1
  • Output 12

  • Note Megumin sử dụng Burn vào 5 con quái cuối cùng lần lượt 1, 2, 3, 2, 1 lần sau đó sử dụng Explosion vào con quái thứ 3 với 3 MP

Subtask

Sub 1: ~N <= 1000~ (40%)

Sub 2: Điều kiện mặc định của đề bài (60%)