Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

Dễ

Bước nhảy thu điểm

100 điểm 50% AC 1 đã giải

staffagent

Trên một dải gồm \(N\) ô xếp thành hàng, ô thứ \(i\) (\(1 \le i \le N\)) chứa một số nguyên \(a_i\) (có thể âm). Quân cờ ban đầu nằm ở ô số \(0\) (ô xuất phát, không chứa giá trị) và tổng điểm bằng \(0\).

Mỗi lượt đi, quân cờ tiến sang phải ít nhất \(1\) và nhiều nhất \(K\) ô. Mỗi khi hạ cánh xuống ô \(i\), giá trị \(a_i\) được cộng vào tổng điểm (các ô bị nhảy qua không được tính). Người chơi có thể dừng lại tại bất kỳ thời điểm nào, kể cả khi chưa đi lượt nào (khi đó điểm là \(0\)), nhưng không được đi ra ngoài ô \(N\).

Hãy tính tổng điểm lớn nhất có thể đạt được.

Input

  • Dòng đầu chứa hai số nguyên \(N\) và \(K\).
  • Dòng thứ hai chứa \(N\) số nguyên \(a_1, \dots, a_N\).

Output

  • In ra một số nguyên: tổng điểm lớn nhất.

Constraints

  • \(1 \le N \le 10^5\)
  • \(1 \le K \le 100\)
  • \(-10^9 \le a_i \le 10^9\)

Sample Input

7 3
-4 2 -7 -5 -6 8 -1

Sample Output

5

Explanation

Đi theo các ô \(2 \to 4 \to 6\) (mỗi lượt bước không quá \(3\) ô) thu được \(2 + (-5) + 8 = 5\). Sau đó dừng lại. Không có cách nào tốt hơn.

Dễ

Câu 3: Tổng liên tiếp (5.0 điểm)

100 điểm 100% AC 2 đã giải

root

Cho một dãy \(A\) gồm \(N\) số nguyên \(a_1, a_2, \dots, a_N\).

Yêu cầu: Hãy tìm đoạn con \([l, r]\) \((1 \le l \le r \le N)\) gồm các phần tử liên tiếp \(a_l, a_{l+1}, \dots, a_{r-1}, a_r\) của dãy \(A\) sao cho tổng \(a_l + a_{l+1} + \dots + a_{r-1} + a_r\) là lớn nhất.

Input

Đọc từ file MAXS.INP gồm:

  • Dòng đầu tiên chứa số nguyên dương \(N\) \((N \le 10^5)\) là số phần tử trong dãy;
  • Dòng tiếp theo chứa \(N\) số nguyên \(a_1, a_2, \dots, a_N\) \((|a_i| \le 10^9, 1 \le i \le N)\).

Output

Ghi ra file MAXS.OUT một số nguyên là tổng lớn nhất tìm được.

Example

Test 1

Input
6
2 -3 8 4 -5 3
Output
12
Note

Giải thích: \(a_3 + a_4 = 8 + 4 = 12\).

Scoring

  • 20% số test: \(N \le 100\)
  • 20% số test: \(N \le 10^4\)
  • 20% số test: \(N \le 10^5\) và \(a_i \ge 0\) \((1 \le i \le N)\)
  • 40% số test: \(N \le 10^5\)
Dễ

Chia đoạn

100 điểm 43% AC 3 đã giải

root

Trong một ngôi làng nọ, người dân tổ chức một cuộc thi thường niên để tìm ra "Bậc Thầy Phân Chia". Cuộc thi này xoay quanh một dãy số cổ xưa \(A\) được truyền qua nhiều thế hệ. Luật chơi như sau:

  • Người chơi sẽ chọn một khoảng giá trị \([X, Y]\) sao cho \(X \leq Y\).
  • Sau đó, họ phải chia dãy \(A\) thành \(K\) \((K \leq N)\) đoạn con liên tiếp.

Mỗi đoạn con phải thỏa mãn:

  • Tất cả các phần tử của dãy \(A\) đều nằm chính xác trong một đoạn con.
  • Trong mỗi đoạn con, số lượng phần tử nằm trong khoảng \([X, Y]\) phải lớn hơn số lượng phần tử nằm ngoài khoảng này.

Điểm của một cách chọn được tính bằng \(Y - X\). Điểm càng thấp thì thứ hạng càng cao.
Nếu hai người chơi có cùng điểm, người chọn giá trị \(X\) nhỏ hơn sẽ xếp hạng cao hơn.

Bây giờ, hãy giúp một người chơi đặc biệt, Eldric - chàng trai trẻ đầy tham vọng nhưng chưa đủ kinh nghiệm, để anh ấy chắc chắn giành được vị trí đầu bảng.

Yêu cầu: Hãy tìm cách chọn khoảng giá trị \([X, Y]\) sao cho tồn tại cách chia dãy \(A\) thành \(K\) đoạn con liên tiếp để đạt thứ hạng cao nhất.

Input

  • Dòng đầu tiên chứa hai số nguyên \(N\) và \(K\) \((1 \leq K \leq N \leq 2 \times 10^5)\), lần lượt là số phần tử trong dãy \(A\) và số đoạn con cần chia.
  • Dòng thứ hai chứa \(N\) số nguyên dương \(A_1, A_2, \ldots, A_N\) \((1 \leq A_i \leq N)\), biểu diễn các phần tử của dãy \(A\).
  • Các số trong một dòng được ngăn cách bởi dấu cách.

Output

Một dòng chứa hai số \(X, Y\) tìm được.

Example

Test 1

Input
2 1
1 2
Output
1 2

Test 2

Input
4 2
1 2 2 2
Output
2 2

Test 3

Input
11 3
5 5 5 1 5 5 1 5 5 5 1
Output
5 5

Scoring

  • Có \(20\%\) số điểm ứng với \(1 \leq N \leq 15\).
  • Có \(30\%\) số điểm ứng với \(15 < N \leq 1000\).
  • Có \(50\%\) số điểm ứng với \(1000 < N \leq 2 \times 10^5\).
Dễ

Bài 2 : Nuôi cá cảnh (6.0 điểm)

100 điểm 0% AC 0 đã giải

root

BigZero có một bể cá. Mỗi ngày đàn cá ăn hết đúng 3 gói thức ăn. Biết trước giá bán trong \(n\) ngày lần lượt là \(a_1, a_2, \dots, a_n\), mỗi ngày được mua nhiều gói với giá bán của ngày đó, thức ăn thừa có thể được dùng cho các ngày tiếp theo.

Yêu cầu: Cho số nguyên dương \(n\) và các số nguyên dương \(a_1, a_2, \dots, a_n\), trong đó \(a_i\) là giá bán một gói thức ăn trong ngày thứ \(i\) \((1 \le i \le n \le 10^6; a_i \le 10^9)\). Hãy xác định số tiền tối thiểu để mua thức ăn cho đàn cá trong \(n\) ngày.

Input

Vào từ tệp văn bản FISH.INP:

  • Dòng thứ nhất chứa một số nguyên dương \(n\) \((1 \le n \le 10^6)\).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_1, a_2, \dots, a_n\) \((1 \le i \le n; a_i \le 10^9)\).

Output

Ghi ra tệp văn bản FISH.OUT một số nguyên duy nhất là số tiền tối thiểu để mua thức ăn cho đàn cá trong \(n\) ngày.

Example

Test 1

Input
3
2 3 5
Output
18
Note

Giải thích:

  • Ví dụ 1: Kế hoạch mua thức ăn là: ngày 1 mua 9 gói với giá là 2, ngày 2, 3 không mua gói nào. Số tiền tối thiểu: \(9 \times 2 + 0 \times 3 + 0 \times 5 = 18\).
  • Ví dụ 2: Kế hoạch mua thức ăn là: ngày 1 mua 3 gói với giá là 5, ngày 2 mua 3 gói với giá là 3, ngày 3 mua 3 gói với giá là 2. Số tiền tối thiểu: \(3 \times 5 + 3 \times 3 + 3 \times 2 = 30\).
  • Ví dụ 3: Kế hoạch mua thức ăn là: ngày 1 mua 3 gói với giá là 5, ngày 2 mua 6 gói với giá là 2, ngày 3 không mua gói nào. Số tiền tối thiểu: \(3 \times 5 + 6 \times 2 + 0 \times 3 = 27\).

Test 2

Input
3
5 3 2
Output
30

Test 3

Input
3
5 2 3
Output
27

Scoring

  • Có \(30\%\) số test ứng với \(30\%\) số điểm của bài thỏa mãn: \(a_1 \le a_2 \le \dots \le a_n\).
  • Có \(30\%\) số test khác ứng với \(30\%\) số điểm của bài thỏa mãn: \(a_1 \ge a_2 \ge \dots \ge a_n\).
  • \(40\%\) số test còn lại ứng với \(40\%\) số điểm của bài không có ràng buộc gì thêm.
Xem thêm