Intervals II

题目描述

You are given n closed, integer intervals [ai, bi] and n integers c1, ..., cn. 
Write a program that: 
  • reads the number of intervals, their end points and integers c1, ..., cn from the standard input, 
  • computes the minimal size of a set Z of integers which has at least ci common elements with interval [ai, bi], for each i=1,2,...,n, 
  • writes the answer to the standard output.

输入

The first line of the input contains an integer n (1 <= n <= 50000) -- the number of intervals. The following n lines describe the intervals. The (i+1)-th line of the input contains three integers ai, bi and ci separated by single spaces and such that 0 <= ai <= bi <= 50000 and 1 <= ci <= bi - ai+1.

输出

The output contains exactly one integer equal to the minimal size of set Z sharing at least ci elements with interval [ai, bi], for each i=1,2,...,n.

样例输入

5
3 7 3
8 10 3
6 8 1
1 3 1
10 11 1

样例输出

6

 题意:求符合题意的最小集合的元素个数  
题目要求的是求的最短路,  
则对于 不等式  f(b)-f(a)>=c,建立 一条 b 到 a 的边 权值为 c,则求的最长路 即为 最小值(集合)  
并且有隐含条件:0<=f(a)-f(a-1)<=1  则有边权关系(a,a-1,0)以及(a-1,a,-1);  
将源点到各点的距离初始化为INF(无穷大),其中之1为0,最终求出的最短路满足 它们与该点之间相互差值最大  

 

上一篇:LeetCode- 56.合并区间


下一篇:MySQL查询的时间间隔