1 solutions

  • 0
    @ 2024-12-11 0:49:57

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define Maxn 10002
    #define int64 long long
    using namespace std;
    int64 n,m,a[Maxn],ans;
    void find(int64 x){
    	ans=0;
    	for(int64 i=1;i<=n;i++){
    		int64 mid,s=i+1,t=n;
    		while(s<=t){
    			mid=(s+t)>>1;
    			if(a[mid]+a[i]<=x) s=mid+1;
    			else t=mid-1;
    		}
    		ans+=t-i;
    	}
    	cout<<ans<<endl;
    }
    void init(){
    	int64 x;
    	cin>>n;
    	for(int64 i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	sort(a+1,a+n+1);
    	cin>>m;
    	for(int64 i=1;i<=m;i++){
    		cin>>x;
    		find(x);
    	}
    }
    int main(){
    	init();
    	return 0;
    }
    
    • 1

    Information

    ID
    784
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By