#CSP202303B. 垦田计划

    ID: 595 Type: Default 1000ms 512MiB Tried: 17 Accepted: 3 Difficulty: 2 Uploaded By: Tags>CSP算法基础二分答案数据结构优先队列

垦田计划

题目来自第 29 次 CSP 认证 T2,评测使用自造高质量复刻数据。我们承认原始题面与大样例版权均归中国计算机学会(CCF)所有,因此题面与评测服务均免费对外开放。如果您认为我们侵犯了您的权益,可联系我们。

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

顿顿总共选中了 nn 块区域准备开垦田地,由于各块区域大小不一,开垦所需时间也不尽相同。据估算,其中第 ii 块(1≤i≤n1 \leq i \leq n)区域的开垦耗时为 tit_i 天。这 nn 块区域可以同时开垦,所以总耗时 tTotalt_{Total} 取决于耗时最长的区域,即:

tTotal=max⁡{t1,t2,⋯ ,tn}t_{Total} = \max \{ t_1, t_2, \cdots, t_n \}

为了加快开垦进度,顿顿准备在部分区域投入额外资源来缩短开垦时间。具体来说:

  • 在第 ii 块区域每投入 cic_i 单位资源,便可将其开垦耗时缩短 11 天;
  • 耗时缩短天数以整数记,即第 ii 块区域投入资源数量必须是 cic_i 的整数倍;
  • 在第 ii 块区域最多可投入 ci×(ti−k)c_i \times (t_i - k) 单位资源,将其开垦耗时缩短为 kk 天;
  • 这里的 kk 表示开垦一块区域的最少天数,满足 0<k≤min⁡{t1,t2,⋯ ,tn}0 < k \leq \min \{ t_1, t_2, \cdots, t_n \};换言之,如果无限制地投入资源,所有区域都可以用 kk 天完成开垦。

现在顿顿手中共有 mm 单位资源可供使用,试计算开垦 nn 块区域最少需要多少天?

输入格式

从标准输入读入数据。

输入共 n+1n+1 行。

输入的第一行包含空格分隔的三个正整数 nn、mm 和 kk,分别表示待开垦的区域总数、顿顿手上的资源数量和每块区域的最少开垦天数。

接下来 nn 行,每行包含空格分隔的两个正整数 tit_i 和 cic_i,分别表示第 ii 块区域开垦耗时和将耗时缩短 11 天所需资源数量。

输出格式

输出到标准输出。

输出一个整数,表示开垦 nn 块区域的最少耗时。

4 9 2
6 1
5 1
6 2
7 1
5

样例 1 解释

如下表所示,投入 55 单位资源即可将总耗时缩短至 55 天。此时顿顿手中还剩余 44 单位资源,但无论如何安排,也无法使总耗时进一步缩短。

ii 基础耗时 tit_i 缩减 11 天所需资源 cic_i 投入资源数量 实际耗时
1 6 1 1 5
2 5 0
3 6 2 2
4 7 1
4 30 2
6 1
5 1
6 2
7 1
2

样例 2 解释

投入 2020 单位资源,恰好可将所有区域开垦耗时均缩短为 k=2k = 2 天;受限于 kk,剩余的 1010 单位资源无法使耗时进一步缩短。

子任务

70%70\% 的测试数据满足:0<n,ti,ci≤1000 < n, t_i, c_i \leq 100 且 0<m≤1060 < m \leq 10^{6};

全部的测试数据满足:0<n,ti,ci≤1050 < n, t_i, c_i \leq 10^{5} 且 0<m≤1090 < m \leq 10^{9}。