#P1001. 任务(task)

任务(task)

题目背景

《算法竞赛进阶指南》 - 任务

题目描述

今天某公司有 M 个任务需要完成。

每个任务都有相应的难度级别和完成任务所需时间。

第 i 个任务的难度级别为 yi,完成任务所需时间为 xi 分钟。

如果公司完成此任务,他们将获得(500 × xi + 2 × yi)美元收入。

该公司有 N 台机器,每台机器都有最长工作时间和级别。

如果任务所需时间超过机器的最长工作时间,则机器无法完成此任务。

如果任务难度级别超过机器的级别,则机器无法完成次任务。

每台机器一天内只能完成一项任务。

每个任务只能由一台机器完成。

请为他们设计一个任务分配方案,使得该公司能够最大化他们今天可以完成的任务数量。

如果有多种解决方案,他们希望选取赚取利润最高的那种。

输入格式

输入包含几个测试用例。

对于每个测试用例,第一行包含两个整数 N 和 M,分别代表机器数量和任务数量。

接下来 N 行,每行包含两个整数 xi,yi,分别代表机器最长工作时间和机器级别。

再接下来 M 行,每行包含两个整数 xi,yi,分别代表完成任务所需时间和任务难度级别。

输出格式

对于每个测试用例,输出两个整数,代表公司今天可以完成的最大任务数以及他们将获得的收入。

输入输出样例

1 2
100 3
100 2
100 1
1 50004
2 4
100 20
150 30
80 10
110 25
140 35
160 40
2 95070

说明/提示

数据范围 1≤N,M≤100000, 0<xi<1440, 0≤yi≤100