#include<bits/stdc++.h>
using namespace std;
long long a[100010],m,n;
int main(){
    scanf("%lld",&n);
    for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
    sort(a+1,a+n+1);
    scanf("%lld",&m);
    while(m--){
        long long a1,b1,a2,b2;
        scanf("%lld%lld%lld%lld",&a1,&b1,&a2,&b2);
        if(a1>a2){
            swap(a1,a2);
            swap(b1,b2);
        }
        if((b1>0&&b2>0)||(b1<0&&b2<0))
            printf("%lld\n",abs(a1-a2)+abs(b1-b2));
        else{
            int v=upper_bound(a+1,a+n+1,(a1+a2)/2)-a;
            if(a[v]>=a1&&a[v]<=a2)
                printf("%lld\n",abs(a1-a2)+abs(b1-b2));
            else{
                if(v!=1&&v!=n+1)v--;
                int w=lower_bound(a+1,a+n+1,(a1+a2)/2)-a;
                int c1=abs(b1-b2)+abs(a[w]-a1)+abs(a[w]-a2);
                int c2=abs(b1-b2)+abs(a[w-1]-a1)+abs(a[w-1]-a2);
                int c3=abs(b1-b2)+abs(a[w+1]-a1)+abs(a[w+1]-a2);
                printf("%d\n",min(c1,min(c2,c3)));
            }
        }
    }
}

zj:

在答案有误差时,可以对多种可能的答案取最小值来确定结果

jzoj1792的更多相关文章

随机推荐

  1. javascript 对象的扩展性

    javascript 对象 的可扩展性 javascript 对象中的可扩展性指的是:是否可以给对象添加新属性.所有的内置对象和自定义对象显示的都是可扩展的,对于宿主对象,则有javascript 引 ...

  2. 登录PL/SQL无法登录,提示错误:ORA-01017: invalid username/password; logon denied 错误

    在使用在登录PL/SQL(使用scott用户)无法登录,提示错误:ORA-01017: invalid username/password; logon denied 错误(程序中的用户和密码无法登录 ...

  3. update svn cache 慢

    eclipse 打开了一个工程,就进行了update svn cache,弄了2个多小时了还是在进行.观察这个过程在空文件夹上也进行了不少时间,我感觉到可能方法错了.试了下关闭SVN--> sv ...

  4. tfrecord

    制作自己的TFRecord数据集,读取,显示及代码详解 http://blog.csdn.net/miaomiaoyuan/article/details/56865361

  5. 录制手机的视频,转换成gif

    Android: 通过adb命令去进行录屏,然后将录制的视频转换成gif图片: 前提:确保电脑上安装了adb,且Android的level高于19. 1.adb shell screenrecord ...

  6. ArcEngine调用GP里的Merge工具传参问题

    Merge工具inputs参数形式与Python中不同: string startLayerPath= cpj.TempWs.PathName + @"\" + datasetNa ...

  7. radio单选框

    1.写 <!DOCTYPE html> <html> <head> <title></title> <script language= ...

  8. 01 Flume系列(一)安装配置

    01 Flume系列(一)安装配置 Flume(http://flume.apache.org/) is a distributed, reliable, and available service ...

  9. Nuget安装 Identity组件。

    Install-Package Microsoft.AspNet.Identity.EntityFramework –Version 2.0.0(2.2.1) Install-Package Micr ...

  10. 解决windows搭建jenkins执行selenium无法启动浏览器问题

    因为jenkins是用windows installer 安装成windows的服务了,那么jenkins是一个后台服务,所以跑selium cases 的时候不显示浏览器 Step 1. Contr ...