Đ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

Chọn ĐTQG Bắc Ninh 2026 - Bài 1

100 điểm

Một công ty công nghệ cần xử lý lần lượt \(n\) tác vụ theo thứ tự đã cho. Tác vụ thứ \(i\) yêu cầu ít nhất \(a_i\) GB bộ nhớ trong (RAM) và \(b_i\) GB dung lượng lưu trữ (Disk).

Các tác vụ phải được chia thành đúng \(k\) lô gồm các tác vụ liên tiếp. Mỗi lô được xử lý trên một máy chủ có cấu hình cố định là \((x,y)\), trong đó \(x\) là dung lượng bộ nhớ trong và \(y\) là dung lượng lưu trữ. Máy chủ có thể xử lý tác vụ thứ \(i\) nếu \(a_i \le x\) và \(b_i \le y\).

Chi phí thuê một máy chủ cấu hình \((x,y)\) để xử lý một lô là \(x+y\), không phụ thuộc vào số lượng tác vụ trong lô. Sau khi hoàn thành lô, máy chủ được trả lại; nếu cần sử dụng cùng cấu hình cho một lô khác, công ty phải thuê lại từ đầu.

Hãy chia \(n\) tác vụ thành đúng \(k\) lô liên tiếp và lựa chọn cấu hình máy chủ cho từng lô sao cho tất cả các tác vụ đều được xử lý, đồng thời tổng chi phí thuê là nhỏ nhất.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(n,k\) \((n \le 10^5\), \(k \le \min(n,100)\), \(n \cdot k \le 10^6)\) lần lượt là số tác vụ và số lô.
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_1,a_2,\ldots,a_n\) \((a_i \le 10^9)\).
  • Dòng thứ ba chứa \(n\) số nguyên dương \(b_1,b_2,\ldots,b_n\) \((b_i \le 10^9)\).

Output

  • In ra một số nguyên duy nhất là tổng chi phí thuê nhỏ nhất tìm được.

Example

Test 1

Input
6 3
4 4 2 3 1 1
2 1 3 3 7 6
Output
20
Note

Chia \(6\) tác vụ thành \(3\) lô liên tiếp là \([1,2]\), \([3,4]\), \([5,6]\). Tổng chi phí thuê là \((4+2)+(3+3)+(1+7)=20\).

Test 2

Input
6 3
8 3 3 1 7 6
3 9 6 9 7 7
Output
37
Note

Chia \(6\) tác vụ thành \(3\) lô liên tiếp là \([1]\), \([2,3,4]\), \([5,6]\). Tổng chi phí thuê là \((8+3)+(3+9)+(7+7)=37\).

Test 3

Input
4 2
1 4 5 1
1 1 1 1
Output
8
Note

Có \(2\) cách chia \(4\) tác vụ thành \(2\) lô cùng đạt chi phí nhỏ nhất là \(8\): \([1]\), \([2,3,4]\) hoặc \([1,2,3]\), \([4]\).

Scoring

  • Subtask 1 (10% số điểm): \(k=2\).
  • Subtask 2 (20% số điểm): \(n \le 100\).
  • Subtask 3 (20% số điểm): \(100 < n \le 1000\).
  • Subtask 4 (25% số điểm): \(b_1=b_2=\ldots=b_n=1\).
  • Subtask 5 (25% số điểm): Không có ràng buộc bổ sung.

root

Phân loại ký tự

1 điểm

Cho một xâu \(S\) gồm các ký tự ASCII nằm trên cùng một dòng.

Hãy đếm số lượng ký tự thuộc từng nhóm sau:

  • Chữ cái thường: từ a đến z.
  • Chữ cái hoa: từ A đến Z.
  • Chữ số: từ 0 đến 9.
  • Ký tự đặc biệt: các ký tự không thuộc ba nhóm trên.

Input

  • Một dòng duy nhất chứa xâu \(S\) \((1 \le |S| \le 10^5)\).
  • Xâu có thể chứa dấu cách và các ký tự ASCII in được từ mã 32 đến 126.

Output

In ra bốn số nguyên theo thứ tự:

  • Số lượng chữ cái thường.
  • Số lượng chữ cái hoa.
  • Số lượng chữ số.
  • Số lượng ký tự đặc biệt.

Các số được phân cách bởi một dấu cách.

Example

Test 1

Input
AbcD12#@
Output
2 2 2 2
Note
  • Chữ cái thường: b, c.
  • Chữ cái hoa: A, D.
  • Chữ số: 1, 2.
  • Ký tự đặc biệt: #, @.

Test 2

Input
HelloWorld2025!
Output
8 2 4 1
Note

Xâu có 8 chữ cái thường, 2 chữ cái hoa, 4 chữ số và 1 ký tự đặc biệt.

root

Số lẻ và số lẻ

100 điểm

Cho một dãy số nguyên gồm \(n\) phần tử.

Bạn cần in ra các số nguyên lẻ trong dãy theo thứ tự sau:

  • Trước hết là các số lẻ theo thứ tự tăng dần.
  • Sau đó là các số lẻ theo thứ tự giảm dần.

Các phần tử trùng nhau vẫn được giữ nguyên. Bỏ qua tất cả các số chẵn.

Input

  • Dòng đầu tiên chứa số nguyên \(n\) \((1 \le n \le 10^5)\).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1,a_2,\ldots,a_n\) \((|a_i| \le 10^9)\).

Output

  • In ra một dòng gồm các số lẻ theo thứ tự tăng dần, sau đó theo thứ tự giảm dần.
  • Các số được phân cách bởi một dấu cách.
  • Nếu dãy không có số lẻ, in ra một dòng trống.

Example

Test 1

Input
7
1 2 3 4 5 6 7
Output
1 3 5 7 7 5 3 1
Note

Các số lẻ là \(1,3,5,7\).

In theo thứ tự tăng dần rồi giảm dần, ta được:

\(1,3,5,7,7,5,3,1\).

Test 2

Input
5
10 20 30 40 50
Output
Note

Dãy không có số lẻ nên kết quả là một dòng trống.

root

Trung vị

100 điểm

Cho một dãy gồm \(n\) số nguyên. Sau khi sắp xếp dãy theo thứ tự tăng dần, phần tử trung vị là phần tử nằm chính giữa dãy. Trong bài toán này, \(n\) luôn là số lẻ.

Hãy tìm giá trị phần tử trung vị của dãy.

Input

  • Dòng đầu tiên chứa số nguyên lẻ \(n\) \((1 \le n \le 10^5)\).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1,a_2,\ldots,a_n\) \((|a_i| \le 10^9)\).

Output

  • In ra một số nguyên duy nhất là giá trị phần tử trung vị của dãy.

Example

Test 1

Input
5
1 5 7 2 9
Output
5
Note

Sau khi sắp xếp, dãy trở thành \(1,2,5,7,9\). Phần tử nằm chính giữa là \(5\).

Scoring

  • Subtask 1 (30 điểm): \(1 \le n \le 100\) và \(|a_i| \le 10^3\).
  • Subtask 2 (70 điểm): Không có ràng buộc bổ sung.
Xem thêm