懒人的工作
问题描述
小明是一个懒人,他每天上班前都会接到当天要完成的全部工作列表,每个工作任务由一个开始时间和一个持续时间构成。小明一天要工作N分钟,从第一分钟开始到第N分钟结束。当小明到达公司时他就立刻开始工作。如果同一时间有多个任务要完成,小明可以任选一个,而其余的由同事包办;反之如果只有一个任务就由小明完成。假如某些工作的开始时间在小明正在工作时,则这些工作由他的同事完成。如某工作在第P分钟开始,持续时间为T分钟,则该工作在第P+T分钟结束。写一个程序计算小明应该如何选择任务才能得到最大的空闲时间。
输入文件(lazy.in)
输入数据第一行含两个用空格隔开的整数N和K(1≤N≤10000,1≤K≤10000),N表示小明的工作时间,单位为分钟,K表示任务总数。
接下来共有K行,每一行有2个用空格隔开的整数P和T,表示该任务从第P分钟开始,持续时间为T分钟,其中1≤P≤N,1≤P+T≤N。
输出文件(lazy.out)
输出文件只有一行,包含一个整数,表示小明可能得到的最大空闲时间。
样例输入
16 6
1 2
1 6
4 11
8 5
8 1
11 5
样例输出
4
最近在看动态规划的东西,稍微懂了一些。不过遇到这个问题感觉可以用到动态规划,但就是不知道公式怎么写,谁能告诉我一下?不胜感激。。。