这道题很明显要用二分猜答案,猜w的值,再来check。这里我用的前缀和的方法来check,求出前i个大于w 的个数和价值和,然后枚举每一个区间,算就好了。
注:要注意用longlong(考试的时候我就是这个错了)。
具体程序如下:
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=200005;
struct