Đ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.

root

Công viên vui vẻ

100 điểm

Công viên Happy là một nơi giải trí nổi tiếng, nơi có nhiều điểm tham quan thú vị. Mỗi đoạn trên đường đi trong công viên có \(n\) trạm được đánh số từ \(1\) đến \(n\). Mỗi trạm chỉ chuyên phục vụ một loại trò chơi trong tổng số \(m\) loại trò chơi khác nhau.

Tuệ Minh được yêu cầu trải nghiệm công viên Happy, trên tay bạn ấy có một vé tham quan gồm một bộ nhiệm vụ: tại mỗi đoạn trạm liên tiếp, bạn ấy rất hứng thú và muốn đánh giá trải nghiệm bằng một chỉ số gọi là số vui vẻ (happiness index) như sau:

  • Giả sử sau khi trải nghiệm toàn bộ các trò chơi từ trạm thứ \(l\) đến trạm thứ \(r\), có \(k\) loại trò chơi bạn chưa tham gia, lần lượt là \(c_1, c_2, c_3, ..., c_k\).
    .
  • Chỉ số vui vẻ của đoạn từ trạm \(l\) đến \(r\) được tính bằng tổng của tất cả các loại trò
    chơi mà bạn chưa tham gia trong đoạn này, cụ thể là \(c_1 + c_2 + c_3 + ... + c_k\).

Yêu cầu: Bạn giúp Tuệ Minh tính tổng chỉ số vui vẻ của tất cả các đoạn trạm liên tiếp trong đoạn đường đi trong công viên. Vì kết quả có thể rất lớn, hãy đưa ra kết quả chia lấy dư cho \(998244353\).

Input

Dữ liệu được đọc từ file HAPPYPAR.IN:

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(m\) \((1 \le n \le 2 \cdot 10^5, 1 \le m \le 10^9)\) --- số trạm và số loại trò chơi.
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) \((1 \le a_i \le m)\) --- loại trò chơi tại trạm \(i\).

Output

In ra file HAPPYPAR.OUT một dòng duy nhất là tổng chỉ số vui vẻ của tất cả các đoạn trạm liên tiếp chia lấy dư cho \(998244353\).

Example

Test 1

Input
3 4
1 2 3
Output
40
Note

Giải thích: Ở ví dụ \(1\), xét các đoạn liên tiếp:

  • \([1, 1]\) : không chơi được các loại trò chơi \(2, 3, 4\) chỉ số vui vẻ là \(9\).

  • \([1, 2]\) : không chơi được các loại trò chơi \(3, 4\) chỉ số vui vẻ là \(7\).

  • \([1, 3]\) : không chơi được các loại trò chơi \(4\) chỉ số vui vẻ là \(4\).

  • \([2, 2]\) : không chơi được các loại trò chơi \(1, 3, 4\) chỉ số vui vẻ là \(8\).

  • \([2, 3]\) : không chơi được các loại trò chơi \(1, 4\) chỉ số vui vẻ là \(5\).

  • \([3, 3]\) : không chơi được các loại trò chơi \(1, 2, 4\) chỉ số vui vẻ là \(7\).

Test 2

Input
8 4
2 3 1 2 4 3 1 3
Output
124

root

Chia táo

100 điểm

Bạn có \(N\) quả táo với trọng lượng đã biết. Nhiệm vụ của bạn là chia \(N\) quả táo này thành hai nhóm, gọi là Nhóm A và Nhóm B, sao cho chênh lệch tuyệt đối về tổng trọng lượng giữa Nhóm A và Nhóm B là nhỏ nhất.

  • Mỗi quả táo phải thuộc duy nhất một nhóm (A hoặc B).
  • Nếu \(S_A\) là tổng trọng lượng của Nhóm A và \(S_B\) là tổng trọng lượng của Nhóm B, bạn cần tìm \(\min(|S_A - S_B|)\).

Input

  • Dòng đầu tiên chứa một số nguyên \(N\) (\(1 \le N \le 20\)) --- số lượng táo.
  • Dòng tiếp theo chứa \(N\) số nguyên \(p_1, p_2, \ldots, p_n\) (\(1 \le p_i \le 10^9\)) --- trọng lượng của mỗi quả táo.

Output

In ra một số nguyên duy nhất là chênh lệch trọng lượng tối thiểu giữa hai nhóm.

Example

Test 1

Input
5
3 2 7 4 1
Output
1

root

Nhà gỗ

100 điểm

Công ty WooHome vừa nhập khẩu \(N\) cột gỗ có chiều cao lần lượt là \(A_1, A_2, \dots, A_N\).
Công ty có \(M\) mẫu thiết kế nhà; mẫu thứ \(i\) \((1 \le i \le M)\) cần đúng \(S_i\) cột gỗ để làm cột trụ cho một ngôi nhà.
Với mỗi ngôi nhà được đặt hàng theo một trong \(M\) mẫu, công ty có lợi nhuận cố định là \(P\).

Tuy nhiên, các cột gỗ dùng trong một ngôi nhà có thể không đều nhau. Chi phí để khắc phục sự không đồng đều là

\[(\max - \min)^2 \cdot C,\]

trong đó \(C\) là hệ số giá thành thi công, \(\max\) và \(\min\) lần lượt là chiều cao lớn nhất và nhỏ nhất trong các cột gỗ dùng cho ngôi nhà đó.

Vì vậy, lợi nhuận dự kiến khi thi công một ngôi nhà là

\[P - (\max - \min)^2 \cdot C.\]

Lưu ý rằng lợi nhuận có thể âm.

WooHome muốn đáp ứng trước các đơn đặt hàng sao cho mỗi mẫu nhà có ít nhất một ngôi nhà được thi công,
và mỗi cột gỗ được dùng tối đa một lần (có thể có cột không dùng).

Hãy tìm tổng lợi nhuận dự kiến lớn nhất.

\InputFile
Dòng đầu chứa bốn số nguyên dương \(N, M, P, C\).

Dòng thứ hai chứa \(N\) số nguyên dương \(A_1, A_2, \ldots, A_N\).

Dòng thứ ba chứa \(M\) số nguyên dương \(S_1, S_2, \ldots, S_M\).

\OutputFile
In ra một số nguyên là tổng lợi nhuận dự kiến lớn nhất.

Ràng buộc

  • \(N \le 10^5\), \(M \le 6\), \(P \le 10^9\), \(C \le 10^6\).
  • \(A_i \le 10^6\).
  • \(2 \le S_i \le N\).
  • \(\sum_{i=1}^{M} S_i \le N\).

\Scoring

  • Subtask 1 (25%): \(N \le 10\), \(M = 1\).
  • Subtask 2 (25%): \(N \le 1000\), \(M = 1\), \(S_1 = 2\).
  • Subtask 3 (25%): \(M = 2\).
  • Subtask 4 (25%): không có ràng buộc thêm.

Example

Test 1

Input
10 2 11 1
14 5 6 4 4 4 7 8 9 1
4 2
Output
30

Test 2

Input
4 1 7 2
8 5 4 7
3
Output
-11

root

Max min 1

100 điểm

Nhập vào 2 số nguyên a và b. In ra số có giá trị nhỏ hơn.

Example

Test 1

Input
2 3
Output
2
Xem thêm