今天学了一招,叫滚动窗口
看了看别人的思想,写了代码一次就过
Kefa wants to celebrate his first big salary by going to restaurant. However, he needs company.
Kefa has n friends, each friend will agree to go to the restaurant if Kefa asks. Each friend is characterized by the amount of money he has and the friendship factor in respect to Kefa. The parrot doesn't want any friend to feel poor compared to somebody else in the company (Kefa doesn't count). A friend feels poor if in the company there is someone who has at least d units of money more than he does. Also, Kefa wants the total friendship factor of the members of the company to be maximum. Help him invite an optimal company!
The first line of the input contains two space-separated integers, n and d (1 ≤ n ≤ 105, ) — the number of Kefa's friends and the minimum difference between the amount of money in order to feel poor, respectively.
Next n lines contain the descriptions of Kefa's friends, the (i + 1)-th line contains the description of the i-th friend of type mi, si(0 ≤ mi, si ≤ 109) — the amount of money and the friendship factor, respectively.
Print the maximum total friendship factir that can be reached.
4 5 75 5 0 100 150 20 75 1
100
5 100 0 7 11 32 99 10 46 8 87 54
111
In the first sample test the most profitable strategy is to form a company from only the second friend. At all other variants the total degree of friendship will be worse.
In the second sample test we can take all the friends.
题目大意: 输入n,m,接下来n行,每行两个数分别a[i].x,a[i].y求在最长的区间和a[i].y,这个区间的要求是区间中任意两个a[i].x相减不超过m
也怒知道我解释的清除不清楚,再来翻译一遍吧!
一个人,要邀请n个朋友,这n个朋友每个人都有一个钱数和友谊值,如果一个朋友带的钱比他朋友中任意一个少m或者m
以上,这个朋友就感到尴尬,他不想让任何一个朋友感到尴尬,并且他想获得最大友谊值,他可以选择性的邀请朋友,求他能选的朋友的最大友谊值之合