Đón giáng sinh
Giáng sinh sắp đến, thầy Minh quyết định trang trí khu du lịch của mình. Trước cửa khu du lịch, có một hàng gồm \(N\) cây, đánh số từ \(1\) đến \(N\) theo chiều từ trái sang phải, cây thứ \(i\) có độ cao hi. Thầy Minh quyết định chọn một số cây để treo mỗi cây một đèn lồng đỏ trên ngọn, sao cho khi nhìn từ vịnh Hạ Long vào các đèn lồng sẽ tạo thành một chữ \(M\).
Chữ \(M\) được định nghĩa như sau: Đó là một dãy các cây, khi xét từ trái sang phải, có thể chia thành 4 phân đoạn, trong đó độ cao các dãy trong đoạn đầu tiên tăng nghiêm ngặt, trong đoạn thứ hai giảm nghiêm ngặt, trong đoạn thứ ba tăng nghiêm ngặt và trong đoạn thứ tư giảm nghiêm ngặt.
Tức là, có một dãy các chỉ số \(a1<a2<…<a_i<b_1<b_2<…<b_j<c_1<c_2...<c_k<d_1<d_2...<d_l\) sao cho:
- Dãy \(h_{a_1},h_{a_2},…,h_{a_i}\) là dãy tăng nghiêm ngặt \(i \geq 2\).
- Dãy \(h_{a_i},h_{b_1},…,h_{b_j}\) là dãy giảm nghiêm ngặt \(j \geq 1\).
- Dãy \(h_{b_j},h_{c_1},…,h_{c_k}\) là dãy tăng nghiêm ngặt \(k \geq 1\).
- Dãy \(h_{c_k},h_{d_1},…,h_{d_l}\) là dãy giảm nghiêm ngặt \(l \geq 1\).
Độ hoành tráng của chữ \(M\) là số lượng đèn lồng tạo thành chữ \(M\).
Yêu cầu : Hãy tìm độ hoành tráng lớn nhất của một chữ \(M\) mà thầy Minh có thể tạo được.
Input
- Dòng 1 chứa số nguyên dương \(n \leq 50000\)
- Dòng 2 chứa n số nguyên dương không vượt quá \(10^9\)
Output
- In ra độ hoành tráng lớn nhất của một chữ \(M\) có thể có.
Scoring
- Subtask \(1\) (\(20\%\) số điểm): \(n \leq 50;\)
- Subtask \(2\) (\(50\%\) số điểm): \(n \leq 1000;\)
- Subtask \(3\) (\(15\%\) số điểm): \(h_i \leq 1000;\)
- Subtask \(4\) (\(15\%\) số điểm): \(n \leq 50000,hi \leq 10^9\)
Example
Test 1
Input
15
1 20 15 30 25 20 15 40 30 20 10 5 4 6 8
Output
12
Note
- Các cây tạo thành hình chữ \(M\) có độ cao là \(1<20<30>25>20>15<40>30>20>10>5>4\). Độ hoành tráng là \(12\)
Phần thưởng
Đan là người thắng cuộc trong một kì thi lập trình và được nhận các phần thưởng theo cách sau: Ban tổ chức chuẩn bị n món quà, các món quà được đánh số từ \(1\) đến \(n\), món quà thứ \(i\) \((1 \leq i \leq n)\) có khối lượng \(w_{i}\) với giá trị \(v_{i}\) và cho phép Đan chọn lấy một số món quà nhưng tổng khối lượng các món quà không được vượt quá \(S\). Đan mong muốn chọn các món quà thỏa mãn yêu cầu của Ban tổ chức mà tổng giá trị là lớn nhất. Tuy nhiên, điều này rất khó để thực hiện tối ưu. Do đó, khi chọn các món quà xong, Ban tổ chức cho Đan thêm một cơ hội, Đan có thể lập trình để tìm một phương án bỏ chọn một món quà và thay bằng một món quà chưa chọn khác mà tổng khối lượng tất cả các món quà chọn vẫn không vượt quá \(S\). Tất nhiên, Đan cũng có quyền không đổi, giữ nguyên các món quà đã chọn.
Yêu cầu: Cho thông tin các món quà và phương án mà Đan đã chọn, hãy tính tổng giá trị lớn nhất có thể đạt được.
Input
- Dòng đầu chứa hai số nguyên dương \(n, S\) \((S \leq 10^{9})\)
- Dòng thứ \(i\) \((1 \leq i \leq n)\) trong \(n\) dòng tiếp theo chứa hai số nguyên dương \(w_{i}, v_{i}, c_{i}\) (\(w_{i},v_{i} \leq 10^{9}\); \(c_{i}\) bằng \(1\) hoặc \(0\) tương ứng món quà thứ \(i\) được chọn hoặc không được chọn trong phương án chọn trước khi được phép đổi chọn một món quà).
Dữ liệu đảm bảo tổng khối lượng các món quà mà Đan đã chọn không vượt quá \(S\).
Output
- In ra chuẩn một dòng chứa một số nguyên là tổng giá trị lớn nhất có thể đạt được.
Scoring
- Subtask \(1\) (\(70\%\) số điểm): \(n \leq 10^{3}\).
- Subtask \(2\) (\(30\%\) số điểm): \(n \leq 10^{5}\).
Example
Test 1
Input
5 13
2 5 0
3 6 1
4 7 1
5 8 1
6 9 0
Output
22
Note
Các món quà mà Đan chọn trước khi đổi là: \(2, 3, 4\) với tổng giá trị là \(6 + 7 + 8 = 21\).
Đan sẽ bỏ chọn món quà \(4\) và thay bằng món quà \(5\) để được tổng giá trị là \(6 + 7 + 9 = 22\).
Test 2
Input
3 10
4 5 1
6 8 1
5 7 0
Output
13
Note
Các món quà mà Đan chọn trước khi đổi là: \(1, 2\) với tổng giá trị là \(5 + 8 = 13\) và Đan không thay đổi các món quà đã chọn.
Số lần nhỏ nhất
Tưởng tượng răng bạn đi trên vỉa hè đi (vỉa hè ở Mỹ nhé, vỉa hè này thì xịn khỏi nói rồi). Nhưng đang đi thì tự dưng bạn mỗi chân, không muốn đi nữa, trong khi phải có \(n\) bước nữa tới nhà. Rất may bạn là một diễn viên giỏi, nên có thể cầu xin người đi đường chở mình đi. Mỗi lần đi nhờ, bạn sẽ từ vị trí \(x\), bạn có thể được đi nhờ tới vị trí \(x + 1, x + 2, x + 3, x + 4\) hoặc \(x + 5\). Tuy bạn có thể xin người khác đi nhờ, nhưng do vẫn còn tí liêm sĩ trong người, nên bạn đang mong muốn đi nhờ ít lần nhất để về tới nhà.
Hãy tính toán nhé số lần phải đi nhờ để về tới nhà.
Input
- Gồm một dòng duy nhất chứa 1 số nguyên không âm \(n\) \((n \leq 10^6)\).
Output
- Gồm dòng duy nhất chứa kết quả bài toán.
Example
Test 1
Input
23
Output
5
Tô màu (THTB N.An 2021)
Lớp Hồng đang chơi trò tô màu trên bảng số. Các bạn kẻ một bảng số hình chữ nhật gồm \(N\) dòng và \(M\) cột. Các hàng được đánh số từ 1 đến \(N\), từ trên xuống dưới; các cột được đánh số từ 1 đến \(M\), từ trái sang phải. Ô ở hàng thứ \(i\) và cột thứ \(j\) được gọi là ô (\(i\),\(j\)) và được điền giá trị là \(i\) × \(j\). Có \(K\) bạn tham gia chơi trò chơi, mỗi bạn chọn một hình chữ nhật trên bảng số và tô bằng một màu mà mình thích (các hình chữ nhật của các bạn có thể đè lên nhau – tô đè lên).
Yêu cầu: Cho \(N, M\) là kích thước bảng số và \(K\) hình chữ nhật được mô tả bằng ô trái trên và ô phải dưới. Hãy tỉnh tổng những ô chưa được tô màu trên bảng số.
Input
Vào từ thiết bị nhập chuẩn theo khuôn dạng:
- Dòng đầu chứa ba số nguyên \(N, M, K\) mô tả kích thước của bảng số và số lượng hình chữ nhật được tô màu;
- \(K\) dòng sau, mỗi dòng chứa bốn số nguyên \(x, y, u, v\) mô tả ô trái trên (\(x, y\)) và ô phải dưới (\(u, v\)) của một hình chữ nhật. Các ô thoả mãn mô tả một hình chữ nhật nằm trong bảng số.
Output
- Ghi ra thiết bị ra chuẩn một số nguyên duy nhất là phần dư của phép chia của tổng các ô chưa được tô màu trên bảng số cho \(10^9 + 7\).
Scoring
- Subtask #1 (\(20\%\) số điểm): \(K = 1; N, M \leq 100\);
- Subtask #2 (\(10\%\) số điểm): \(K = 1; N, M \leq 10^6\);
- Subtask #3 (\(10\%\) số điểm): \(K = 1; N, M \leq 10^9\);
- Subtask #4 (\(10\%\) số điểm): \(K = 10; N, M \leq 100\);
- Subtask #5 (\(20\%\) số điểm): \(K = 2; N, M \leq 10^6\);
- Subtask #6 (\(10\%\) số điểm): \(K = 2; N, M \leq 10^9\);
- Subtask #7 (\(10\%\) số điểm): \(K = 3; N, M \leq 10^9\);
- Subtask #8 (\(10\%\) số điểm): \(K \leq 10; N, M \leq 10^9\).
Example
Test 1
Input
3 3 2
1 2 3 3
3 1 3 2
Output
3
Note
Còn 2 ô chưa bị tô màu là ô (1,1) và ô (2,1). Vậy tổng là 1 + 2 = 3.