题目描述

Ever the maturing businessman, Farmer John realizes that he must manage his time effectively. He has N jobs conveniently numbered 1..N (1 <= N <= 1,000) to accomplish (like milking the cows, cleaning the barn, mending the fences, and so on).

To manage his time effectively, he has created a list of the jobs that must be finished. Job i requires a certain amount of time T_i (1 <= T_i <= 1,000) to complete and furthermore must be finished by time S_i (1 <= S_i <= 1,000,000). Farmer John starts his day at time t=0 and can only work on one job at a time until it is finished.

Even a maturing businessman likes to sleep late; help Farmer John determine the latest he can start working and still finish all the jobs on time.

作为一名忙碌的商人,约翰知道必须高效地安排他的时间.他有N工作要 做,比如给奶牛挤奶,清洗牛棚,修理栅栏之类的.

为了高效,列出了所有工作的清单.第i分工作需要T_i单位的时间来完成,而 且必须在S_i或之前完成.现在是0时刻.约翰做一份工作必须直到做完才能停 止.

所有的商人都喜欢睡懒觉.请帮约翰计算他最迟什么时候开始工作,可以让所有工作按时完 成.

输入输出格式

输入格式:

  • Line 1: A single integer: N

  • Lines 2..N+1: Line i+1 contains two space-separated integers: T_i and S_i

输出格式:

  • Line 1: The latest time Farmer John can start working or -1 if Farmer John cannot finish all the jobs on time.

输入输出样例

输入样例#1:
复制

4
3 5
8 14
5 20
1 16
输出样例#1: 复制

2

说明

Farmer John has 4 jobs to do, which take 3, 8, 5, and 1 units of time, respectively, and must be completed by time 5, 14, 20, and 16, respectively.

Farmer John must start the first job at time 2. Then he can do the second, fourth, and third jobs in that order to finish on time.

思路

以时间限制s为关键字从大到小排序,贪心选取;

代码

 #include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=1e3+;
inline int min_(int x,int y){return x<y?x:y;}
int n,ans=1e6;
struct nate{int t,s;}s[maxn];
bool comp(nate x,nate y){return x.s>y.s;}
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d%d",&s[i].t,&s[i].s);
sort(s+,s+n+,comp);
for(int i=,j=1e6;i<=n;i++) ans=min_(ans,s[i].s)-s[i].t;
if(ans>=) printf("%d\n",ans);
else puts("-1");
return ;
}

最新文章

  1. codevs1958 刺激
  2. 打包文件 MANIFEST.MF 功能详解
  3. 简单获取input file 选中的图片,并在一个div的img里面赋值src实现预览图片
  4. Wijmo金融图表系列之等量图&amp;成交量柱状图
  5. [复变函数]第17堂课 5 解析函数的 Laurent 展式与孤立奇点 5. 1 解析函数的 Laurent 展式
  6. properties配置应用,为什么需要使用properties文件
  7. Servlet获取当前服务器的实际路径
  8. spring mvc DispatcherServlet详解之三---request通过ModelAndView中获取View实例的过程
  9. IIS7.5 asp+access数据库连接失败处理 64位系统
  10. Android 自定义shape圆形按钮
  11. Beta冲刺4/7
  12. Vue源码学习(二)$mount() 后的做的事(1)
  13. systemd 编写
  14. SQL Server 2008“备份集中的数据库备份与现有的数据库不同”解决方法
  15. hello C#
  16. 检测 C++ 内存泄露
  17. python中把数据存入csv中
  18. Qt QGraphicsItem 绕中心旋转、放缩
  19. VULKAN学习笔记-inter教学四篇
  20. ios虚拟机安装(一)

热门文章

  1. Laravel5中防止XSS跨站攻击的方法
  2. ABP教程(三)- 开始一个简单的任务管理系统 – 后端编码
  3. AJPFX关于Collection 集合的表述
  4. Elasticsearch--集群管理_别名&amp;插件&amp;更新API
  5. 第二章 TCP/IP 基础知识
  6. 浅谈2015新版 U-Boot
  7. CAD交互绘制圆弧(com接口)
  8. pavenet资源
  9. 快速创建你xmlhttp的方法
  10. 跨平台字符编码转换GBK、UTF8