ABC D 错一个点求调,玄关
  • 板块学术版
  • 楼主Alex_smy
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/9/14 21:55
  • 上次更新2024/9/15 09:59:48
查看原帖
ABC D 错一个点求调,玄关
712296
Alex_smy楼主2024/9/14 21:55

离奇事件

评测结果:

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=200005;
int n,q,x[N];
long long p[N],sum[N];
int solve1(int tar){
	int l=1,r=n;
	while(l<r){
		int mid=(l+r)>>1;
		if(x[mid]>=tar) r=mid;
		else l=mid+1;
	}
	return l;
}
int solve2(int tar){
	int l=1,r=n;
	while(l<r){
		int mid=(l+r+1)>>1;
		if(x[mid]<=tar) l=mid;
		else r=mid-1;
	}
	return r;
}
int main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++) scanf("%d",&x[i]);
	for(int i=1;i<=n;i++) scanf("%lld",&p[i]);
	for(int i=1;i<=n;i++) sum[i]=sum[i-1]+p[i];
	scanf("%d",&q);
	while(q--){
		int l,r;
		scanf("%d%d",&l,&r);
		int p=solve1(l),q=solve2(r);
		printf("%lld\n",sum[q]-sum[p-1]);
	}
	return 0;
}
2024/9/14 21:55
加载中...