求助,0分,错哪里了
查看原帖
求助,0分,错哪里了
737088
WUYUEZE楼主2023/10/18 21:04
#include<bits/stdc++.h>
using namespace std;
int main(){
    long long a,b,c;
    cin>>a>>b>>c;
    long long n[a][2],m[b][2];
    for(long long i=0;i<a;i++){
        cin>>n[i][0]>>n[i][1];
    }
    for(long long i=0;i<b;i++){
        cin>>m[i][0]>>m[i][1];
    }
    long long l=0,r=c,mid;
    long long jg;
    while(l<=r){
        mid=(l+r)>>1;
        long long s=0;
        for(int i=0;i<b;i++){
            if(m[i][1]<mid){
                continue;
            }
            if(m[i][0]<mid){
                long long ss=0;
                for(long long j=mid;j<=m[i][1];j++){
                    ss+=n[j][1];
                }
                s+=(m[i][1]-mid)*ss;
            }
            else{
                long long ss=0;
                for(long long j=m[i][0];j<=m[i][1];j++){
                    ss+=n[j][1];
                }
                s+=(m[i][1]-m[i][0])*ss;
            }
        }
        if(s>=c){
            l=mid+1;
            jg=s-c;
        }
        else{
            r=mid-1;
            jg=c-s;
        }
    }
    cout<<jg<<endl;
    return 0;
}
2023/10/18 21:04
加载中...