#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. 纯C++binder服务和客户端实例

    继承关系: 文件关系 IHelloService.h /* 参考: frameworks\av\include\media\IMediaPlayerService.h */ #ifndef ANDRO ...

  2. Hadoop Streaming:aggregate

    [Hadoop Streaming:aggregate] 1.实例1 测试文件test.txt mapper程序: 运行: $hadoop streaming -input /app/test.txt ...

  3. 获取set()和push()方法向值栈放的数据

    ------------------siwuxie095 获取 set() 方法向值栈放的数据 1.具体步骤 (1)在 Action 中使用 set() 方法向值栈放数据 (2)在 JSP 页面中从值 ...

  4. war项目部署流程

    准备: 1安装jdk1.7及以上版本 2安装tomcat7及以上版本 到%tomcat%/bin目录下记事本编辑server.xml, 配置<Connector>元素port端口,及< ...

  5. 使用IntelliJ IDEA,gradle开发Java web应用步骤

    最近 正在学习gradle构建工具的使用,看了一堆的文档,有点一知半解,索性动作实践一把,在以后的自己的项目中尝试使用看看.目前手头用的是IntelliJ IDEA 14,搭建了一天终于明白怎么集成g ...

  6. golang之map数据类型

    先上代码…… package main import "fmt" func testMap() { //两种声明map方式,切记,必须初始化才能用,否则panic //var a ...

  7. Cook-Torrence Illumination Model 的一些数学说明

    Cook-Torrence 光照模型如下: 这个Io就是计算后最终的光强,主要是用来计算镜面反射光,漫反射和环境光的计算和Phong模型一致. F:Fresnel反射系数.主要用来说明反射光强度占入射 ...

  8. 生物信息学——RNA的剪切过程

    生物信息学——RNA的剪切过程   外显子(exon expressed region)是真核生物基因的一部分,它在剪接(Splicing)后仍会被保存下来,并可在蛋白质生物合成过程中被表达为蛋白质. ...

  9. Luogu 4449 于神之怒加强版

    挺套路的题,然而一开始还是想错了…… $\sum_{i = 1}^{n}\sum_{j = 1}^{m}gcd(i, j) ^ {k} = \sum_{T = 1}^{min(n, m)}\left ...

  10. Luogu 5170 【模板】类欧几里得算法

    原理不难但是写起来非常复杂的东西. 我觉得讲得非常好懂的博客.   传送门 我们设 $$f(a, b, c, n) = \sum_{i = 0}^{n}\left \lfloor \frac{ai + ...