Notice
Chào mừng bạn đến với OREOJ

[HueICT 2026] Phân công

Xem dạng PDF

Gửi bài giải


Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, C++20, Java, Kotlin, Pascal, PyPy, Python, Scratch

Có ~M~ nhiệm vụ. Nhiệm vụ thứ ~i~ có:

  • thời gian thực hiện ~x_i~
  • độ khó ~y_i~

Nếu hoàn thành nhiệm vụ này, ta nhận được tiền thưởng:

~500 \times x_i + 2 \times y_i~

Có ~N~ máy. Máy thứ ~j~ có khả năng:

  • làm việc tối đa trong ~T_j~ đơn vị thời gian
  • xử lí nhiệm vụ có độ khó không vượt quá ~D_j~

Một máy có thể thực hiện nhiệm vụ ~i~ nếu:

  • ~x_i \le T_j~
  • ~y_i \le D_j~

Quy tắc

  • Mỗi máy chỉ được làm nhiều nhất một nhiệm vụ.
  • Mỗi nhiệm vụ chỉ được giao cho nhiều nhất một máy.

Yêu cầu

Hãy phân công nhiệm vụ cho các máy sao cho tổng tiền thưởng thu được là lớn nhất.

Input

  • Dòng đầu chứa hai số nguyên ~M, N~.
  • Dòng thứ hai chứa ~2M~ số nguyên: ~x_1, y_1, x_2, y_2, \ldots, x_M, y_M~.
  • Dòng thứ ba chứa ~2N~ số nguyên: ~T_1, D_1, T_2, D_2, \ldots, T_N, D_N~.

Output

In ra một số nguyên duy nhất là tổng tiền thưởng lớn nhất có thể đạt được.

Ràng buộc

  • ~1 \le M, N \le 10^5~
  • ~1 \le x_i \le 1440~
  • ~1 \le y_i \le 200~
  • ~1 \le T_j \le 1440~
  • ~1 \le D_j \le 200~

Subtasks

  • Subtask 1 (40%): ~M, N \le 20~
  • Subtask 2 (30%): ~M, N \le 100~
  • Subtask 3 (30%): Không có ràng buộc bổ sung.

Input

3 3
60 50 90 120 30 80
60 100 90 130 30 90

Output

90500

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.