CodeForces 580B Kefa and Company
2016-04-30 11:31
211 查看
思路:滑窗一波
Description
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!
Input
The first line of the input contains two space-separated integers, n and d (1 ≤ n ≤ 105,
![](http://7xjob4.com1.z0.glb.clouddn.com/8800cf9e5120a3aa3d7ba04d82d201d7)
)
— 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.
Output
Print the maximum total friendship factir that can be reached.
Sample Input
Input
Output
Input
Output
Hint
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.
#include<map> #include<set> #include<cmath> #include<ctime> #include<stack> #include<queue> #include<cstdio> #include<cctype> #include<string> #include<vector> #include<cstring> #include<iostream> #include<algorithm> #include<functional> #define fuck printf("fuck") #define FIN freopen("input.txt","r",stdin) #define FOUT freopen("output.txt","w+",stdout) using namespace std; typedef long long LL; const int MX = 1e5 + 5; struct Data { int a, b; bool operator<(const Data &P)const { return a < P.a; } } A[MX]; int main() { int n, d; //FIN; while(~scanf("%d%d", &n, &d)) { for(int i = 1; i <= n; i++) { scanf("%d%d", &A[i].a, &A[i].b); } sort(A + 1, A + 1 + n); int L = 1, R = 0; LL ans = 0, sum = 0; while(L <= n) { while(R + 1 <= n && A[R + 1].a - A[L].a < d) sum += A[++R].b; ans = max(ans, sum); sum -= A[L++].b; } printf("%I64d\n", ans); } return 0; }
Description
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!
Input
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.
Output
Print the maximum total friendship factir that can be reached.
Sample Input
Input
4 5 75 5 0 100 150 20 75 1
Output
100
Input
5 1000 7
11 32
99 10
46 8
87 54
Output
111
Hint
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.
相关文章推荐
- python中list的赋值处理
- 不要做浮躁的嵌入式系统工程师
- js简单倒计时实现代码
- 设计模式书籍总结
- css等比例分割父级容器(完美三等分)
- 【JS】IP大小端转换&十进制数字转换成IP
- CodeForces 580A Kefa and First Steps
- 设计模式书籍总结
- 对照Java学习Swift--方法(Methods)
- HDU 1856 -More is better
- Android之Style简化代码
- HDU Walk (概率DP)
- CDHtmlDialog的基本使用(C++调用JS函数的实现)
- 摩天轮社区在哪里??风景还是很好看的
- 窗口事件
- 深入浅出ES6(十六):模块 Modules
- Smart20学习记录----异步通知
- 参数table_open_cache
- 如何在html中添加分享按钮
- 虚拟内存的使用--Redis学习笔记九