首页 > 其他 > 详细

5.2比赛补题

时间:2020-05-11 09:08:45      阅读:66      评论:0      收藏:0      [点我收藏+]

5.2

 2020年西北工业大学“编程之星”程序设计挑战赛(大学生程序设计创新实践基地队员春季选拔赛)

https://ac.nowcoder.com/acm/contest/5403/A

#include<bits/stdc++.h>
 using namespace std;
int n,m,a[100010],sum[100010]; 
int main(){
    
    cin>>n>>m;
    for(int i = 1;i<=n;i++)
        scanf("%d",&a[i]);
    sort(a+1,a+1+n);
    sum[1]=a[1];
    for(int i = 2;i<=n;i++)
        sum[i]+=sum[i-1]+a[i];
     while(m--){
         int x,y;
         scanf("%d %d",&x,&y);
         if(x>y) swap(x,y);
         int l = upper_bound(a+1,a+n+1,x)-a-1;
         int r = lower_bound(a+1,a+n+1,y)-a;
         int mid = upper_bound(a+1,a+1+n,(x+y)>>1)-a-1;
         int ans=0;
         ans+=l*x-sum[l];
         ans+=sum[n]-sum[r-1]-(n-r+1)*y;
         ans+=sum[mid]-sum[l]-(mid-l)*x;
         ans+=(r-mid-1)*y-(sum[r-1]-sum[mid]);
         cout<<ans<<endl;
         
    }
     return 0;
}

 

5.2比赛补题

原文:https://www.cnblogs.com/aixiaodezsh/p/12865511.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!