#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:

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

最新文章

  1. NHibernate生成实体类、xml映射文件
  2. 用datagrid实现完整的一个页面
  3. 关于公司内部的Nuget服务
  4. Nginx 使用IP限制访问来源
  5. JAVA System.getProperty() 与 System.getenv() 差异及示例
  6. 使用网易ubuntu镜像加速软件包安装
  7. jenkins maven svn 部署web项目到本地Tomcat
  8. [转载]我读过最好的Epoll模型讲解
  9. HTML5新增的一些属性和功能之一
  10. SQLite笔记
  11. Struts(二十一):类型转换与复杂属性、集合属性配合使用
  12. Cocos2Dv3.4在AppDelegate中不返回的情况及解决
  13. Snapde和Excel、PowerPivot、WPS打开超大CSV文件性能比较
  14. None.js 第六步 Stream(流)
  15. 基于TensorFlow的简单验证码识别
  16. imx6ul linux4.1.15 LED驱动配置及heartbeat源码分析【转】
  17. 【刷题】HDU 6183 Color it
  18. POJ 3468 A Simple Problem with Integers (splay tree入门)
  19. 两个值相等的Integer的==比较问题
  20. size和STL中的size_type

热门文章

  1. 一个简单的MVVM雏形
  2. MVC4中压缩和合并js文件和样式文件
  3. PM2 介绍
  4. Linux centos下php安装cphalcon扩展的方法
  5. 多线程中,ResultSet为空,报错空指针
  6. input和React-Native的TextInput的输入限制,只能输入两位小数(阻止0开头的输入),类似价格限制
  7. for 续6
  8. Redis持久化(八)
  9. 三种调用WCF服务的代码
  10. Spring 框架简介