题目名称 570. 准备工作
输入输出 preparation.in/out
难度等级 ★★★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarcqw 于2011-07-23加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:1, 提交:5, 通过率:20%
GravatarFoolMike 100 0.765 s 5.65 MiB C++
Gravatar老虎小飞 30 7.021 s 0.17 MiB Pascal
GravatarPom 20 7.028 s 0.31 MiB C++
GravatarFoolMike 10 0.007 s 5.65 MiB C++
Gravatarkaaala 0 0.004 s 0.27 MiB C++
本题关联比赛
20110724
关于 准备工作 的近10条评论(全部评论)
二分答案,网络流验证。话说样例都不合法,害得我以为就一组数据呢……
GravatarFoolMike
2017-06-02 14:23 1楼

570. 准备工作

★★★★   输入文件:preparation.in   输出文件:preparation.out   简单对比
时间限制:1 s   内存限制:128 MiB

 

【问题描述

对大学生来说,ZSUCPC是一个年度活动。在活动中他们可以挑战编程技巧,发展他们之间的友谊。今年的活动就要举行了。组织者和评判们忙于活动的准备工作。许多工作队都进入实验室进行备战。为了让人们工作的更高效,Bea博士为此作了一个计划。
首先,Bea博士为每一个队评估工作时间。根据他们的提交申请,他想p[i]秒是第i队所需要的时间。Bea博士给第i队一个时间r[i],在这个时间第i队必须准备工作。例如:
 

I
0
1
2
3
p[i]
4
2
6
5
r[i]
0
1
3
5

 
在这个例子中,0队可以在开始就进行他们的工作(时间0意味着一天的开始),并且必须在4秒内完成他们的工作,1队不能在1秒以前工作,但可以在这个时间后工作,等等。
不同的队有不同的任务,包括放置课桌,安装系统等等。为避免矛盾,在任何时间Bea博士只允许一个队进入实验室。
最后,Bea博士为每一个队设置一个保留时间d[i]。因为保留时间来自于Bea博士的评估,所以计划表不可能满足所有工作队的需要。所以结束点每个队是不同的,这取决于完成时间和评估时间。设想一个队在s秒开始工作,他们将在s+p秒完成工作。如果他们的评估时间是d,他们的延迟时间是(s+p)-d,如此处理,四个队的评估时间如下所示:
 

I
0
1
2
3
d[i]
8
12
11
10

我们有许多不同的策略建立计划表。按照顺序,我们可以让0队在0秒到4秒工作,1队在4秒到6秒工作,3队在6秒到12秒工作,4队在12秒到17秒工作。他们的延迟时间是-4,-6,1 和 7。四个队的最大延迟时间是7,是3号队。但如果把戏2队放在最后。他们的最大延迟时间将是5.现在Bea博士很在意所有队的最大延迟时间,他想设计一个计划表尽量降低最大延迟时间。
【输入格式】
n
p1p2…pn
r1r2…rn
d1d2…dn
输入文件由多个测试数据组成,(所有数据都是整数),每个测试数据由包括4行,第一行有一个整数n,表示队的数量(n≤100).第二行的个整数是每队的工作时间,第三行的n个整数是每队的准备时间,第四行的n个整数是每个队的评估时间。所有这些整数都不超过1000。输入文件以单独一行0表示结束.
【输出格式】

   对于每个测试数据输出单独一个整数,计划表中的最大延迟时间。

【输入样例】

输入文件名:preparation.in

4

4 2 6 5

0 1 3 5

8 12 11 10

0

输出文件名: preparation.out
5