奇妙问题,debug不出来了
  • 板块题目总版
  • 楼主I_Love_DS
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/5/2 18:13
  • 上次更新2024/5/2 20:43:34
查看原帖
奇妙问题,debug不出来了
1118614
I_Love_DS楼主2024/5/2 18:13
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn = 2e5 + 50;
int n,m;
ll k,all_ans = LONG_MIN;
struct node {
	int w,v;
} a[maxn];
struct question {
	int l,r;
} q[maxn];
bool check(int w){
	printf("hash\n");
	ll sw[maxn],sv[maxn],ans = 0;
	memset(sw,0,sizeof(sw));
	memset(sv,0,sizeof(sv));
	for (int i = 1; i <= n; i++) {
		printf("hash\n");
		if (a[i].w >= w) sw[i] = sw[i - 1] + 1,sv[i] = sv[i - 1] + a[i].v;
		else sw[i] = sw[i - 1],sv[i] = sv[i - 1];
	}
	for (int i = 1; i <= m; i++) ans += (sw[q[i].r] - sw[q[i].l - 1]) * (sw[q[i].r] - sw[q[i].l - 1]) * (sv[q[i].r] - sv[q[i].l - 1]);
	if (abs(ans - k) < abs(all_ans - k)) all_ans = ans;
	if (ans > k) return true;
	else return false;
}
int main(){
	scanf("%d%d%lld",&n,&m,&k);
	for (int i = 1; i <= n; i++) scanf("%d%d",&a[i].w,&a[i].v);
	for (int i = 1; i <= m; i++) scanf("%d%d",&q[i].l,&q[i].r);
	int l = 0,r = 1000001,mid;
	while (l + 1 < r) {
		printf("%d %d\n",l,r);
		mid = (l + r) / 2;
		printf("hash\n");
		if (check(mid)) l = mid;//就这里,我点击进入函数,他就爆错啦
		else r = mid;
	}
	printf("%lld",abs(all_ans - k));
	return 0;
}
2024/5/2 18:13
加载中...