1 条题解

  • 0
    @ 2026-3-1 23:08:25
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    const int N=2e5+10;
    int a[N],sum[N];
    int main()
    {
        int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d",&a[i]);
    		if(i%2)sum[i]=sum[i-1]+a[i]-a[i-1];
    		else sum[i]=sum[i-1];
    	}
        int q;
    	cin>>q;
    	while(q--)
    	{
            int l,r;
    		scanf("%d%d",&l,&r);
    		int x=lower_bound(a+1,a+1+n,l)-a;
    		int y=lower_bound(a+1,a+1+n,r)-a;
    		int ans=sum[y]-sum[x];
    		int u=a[x]-l;
    		if(x&1)ans+=u;
    		int v=a[y]-r;
    		if(y&1)ans-=v;
    		printf("%d\n",ans);
    	}
        return 0;
    }
    
    • 1

    信息

    ID
    9131
    时间
    3000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者