时间管理

时间管理

https://ac.nowcoder.com/acm/problem/210102

链接:https://ac.nowcoder.com/acm/problem/210102
来源:牛客网
题号:NC210102
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64 位 IO 格式:%lld

题目描述

作为成熟的商人,农夫约翰意识到他必须有效地管理自己的时间。他有 N 份工作,编号为 1..N (1 <= N <= 1,000) 来完成(比如挤奶、打扫谷仓、修补栅栏等等)。为了有效地管理他的时间,他创建了一份必须完成的工作清单。作业 i 需要一定的时间 T_i (1 <= T_i <= 1,000) 才能完成,而且必须在时间 S_i (1 <= S_i <= 1,000,000) 之前完成。农夫约翰在时间 t=0 开始他的一天,并且一次只能完成一项工作,直到完成。即使是成熟的商人也喜欢晚睡;帮助 Farmer John 确定他可以开始工作并仍能按时完成所有工作的最晚时间。

N个工作,每个工作其所需时间,及完成的Deadline,问要完成所有工作,最迟要什么时候开始.

输入描述:

	

* 第 1 行:单个整数:N

* 第 2..N+1 行:第 i+1 行包含两个以空格分隔的整数:T_i 和 S_i

输出描述:

* 第 1 行:Farmer John 可以开始工作的最晚时间,如果 Farmer John 不能按时完成所有工作,则为 -1。
示例1

输入

4
3 5
8 14
5 20
1 16

输出

2
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct job {     int t;     int end;
};
job jobs[1000001];
int n;
bool cmp(job a, job b);
bool ok(int time) {     for(int i = 0; i < n; i++) {         if(jobs[i].t + time <= jobs[i].end)             time += jobs[i].t;         else             return false;     }     return true;
}
int main() {     int r=1000000000, l=1, mid;     int ans=-1;     cin >> n;     for(int i = 0; i < n; i++)         cin >> jobs[i].t >> jobs[i].end;     sort(jobs, jobs+n, cmp);     while(l<=r) {         mid=l+(r-l)/2;         if(ok(mid)) {             ans=mid;             l=mid+1;         } else             r=mid-1;     }     cout<<ans;     return 0;
}
bool cmp(job a, job b) {     return a.end < b.end;
}
	

全部评论

相关推荐

11-27 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
评论
1
1
分享
正在热议
# 25届秋招总结 #
443459次浏览 4523人参与
# 春招别灰心,我们一人来一句鼓励 #
42266次浏览 539人参与
# 北方华创开奖 #
107476次浏览 600人参与
# 地方国企笔面经互助 #
7975次浏览 18人参与
# 同bg的你秋招战况如何? #
77249次浏览 569人参与
# 实习必须要去大厂吗? #
55816次浏览 961人参与
# 阿里云管培生offer #
120469次浏览 2220人参与
# 虾皮求职进展汇总 #
116395次浏览 887人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11702次浏览 289人参与
# 实习,投递多份简历没人回复怎么办 #
2455021次浏览 34861人参与
# 提前批简历挂麻了怎么办 #
149962次浏览 1979人参与
# 在找工作求抱抱 #
906124次浏览 9423人参与
# 如果公司给你放一天假,你会怎么度过? #
4764次浏览 55人参与
# 你投递的公司有几家约面了? #
33209次浏览 188人参与
# 投递实习岗位前的准备 #
1196058次浏览 18550人参与
# 机械人春招想让哪家公司来捞你? #
157650次浏览 2267人参与
# 双非本科求职如何逆袭 #
662406次浏览 7397人参与
# 发工资后,你做的第一件事是什么 #
12808次浏览 62人参与
# 工作中,努力重要还是选择重要? #
35929次浏览 384人参与
# 简历中的项目经历要怎么写? #
86943次浏览 1516人参与
# 参加完秋招的机械人,还参加春招吗? #
20154次浏览 240人参与
# 我的上岸简历长这样 #
452080次浏览 8089人参与
牛客网
牛客企业服务