You are given n

segments on a number line; each endpoint of every segment has integer coordinates. Some segments can degenerate to points. Segments can intersect with each other, be nested in each other or even coincide.

The intersection of a sequence of segments is such a maximal set of points (not necesserily having integer coordinates) that each point lies within every segment from the sequence. If the resulting set isn't empty, then it always forms some continuous segment. The length of the intersection is the length of the resulting segment or 0

in case the intersection is an empty set.

For example, the intersection of segments [1;5]

and [3;10] is [3;5] (length 2), the intersection of segments [1;5] and [5;7] is [5;5] (length 0) and the intersection of segments [1;5] and [6;6] is an empty set (length 0

).

Your task is to remove exactly one segment from the given sequence in such a way that the intersection of the remaining (n−1)

segments has the maximal possible length.

Input

The first line contains a single integer n

(2≤n≤3⋅105

) — the number of segments in the sequence.

Each of the next n

lines contains two integers li and ri (0≤li≤ri≤109) — the description of the i

-th segment.

Output

Print a single integer — the maximal possible length of the intersection of (n−1)

remaining segments after you remove exactly one segment from the sequence.

Examples

Input
4
1 3
2 6
0 4
3 3
Output
1
Input
5
2 6
1 3
0 4
1 20
0 4
Output
2
Input
3
4 5
1 2
9 20
Output
0
Input
2
3 10
1 5
Output
7

Note

In the first example you should remove the segment [3;3]

, the intersection will become [2;3] (length 1). Removing any other segment will result in the intersection [3;3] (length 0

).

In the second example you should remove the segment [1;3]

or segment [2;6], the intersection will become [2;4] (length 2) or [1;3] (length 2), respectively. Removing any other segment will result in the intersection [2;3] (length 1

).

In the third example the intersection will become an empty set no matter the segment you remove.

In the fourth example you will get the intersection [3;10]

(length 7) if you remove the segment [1;5] or the intersection [1;5] (length 4) if you remove the segment [3;10].

题意:给出一些区间(或者点),求去除一个区间后,所共有的最大范围

题解:根据样例与自己画得出规律:所给区间最大值为右侧r的最小值减去左侧l的最大值。然后从第一个点循环求出最大的ans。如果去除点包含lmax,那么l取第二大的值,r同理

ac代码

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
struct k {
long long ll;
long long rr;
}fan[310000];
int l[310000],r[310000];
int main()
{
int n,l1,r1,al,ar;
int ans=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>fan[i].ll;
cin>>fan[i].rr;
l[i]=fan[i].ll;
r[i]=fan[i].rr;
}
sort(l,l+n);
sort(r,r+n);
for(int i=0;i<n;i++)
{
if(fan[i].ll==l[n-1]) al=l[n-2];
else al=l[n-1];
if(fan[i].rr==r[0]) ar=r[1];
else ar=r[0];
ans=max(ans,ar-al);
}
cout<<ans<<endl;
return 0;
}

F - Maximal Intersection --------暴力求解题的更多相关文章

  1. CF1029C Maximal Intersection 暴力枚举

    Maximal Intersection time limit per test 3 seconds memory limit per test 256 megabytes input standar ...

  2. 2n皇后问题-------递归 暴力求解题与分布讨论题

    问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一列或同一 ...

  3. Codeforces Round #506 (Div. 3) C. Maximal Intersection

    C. Maximal Intersection time limit per test 3 seconds memory limit per test 256 megabytes input stan ...

  4. Blue Jeans---poj3080(kmp+暴力求子串)

    题目链接:http://poj.org/problem?id=3080 题意就是求n个长度为60的串中求最长公共子序列(长度>=3):如果有多个输出字典序最小的: 我们可以暴力求出第一个串的所有 ...

  5. Java【基础学习】之暴力求素数【用数组返回】

    Java[基础学习]之暴力求素数[用数组返回] */ import java.util.*; public class Main{ public static void main(String[] a ...

  6. hdu 4291(矩阵+暴力求循环节)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4291 思路:首先保留求出循环节,然后就是矩阵求幂了. #include<iostream> ...

  7. UVA725 Division (暴力求解法入门)

    uva 725 Division Write a program that finds and displays all pairs of 5-digit numbers that between t ...

  8. 2019牛客多校第二场F Partition problem 暴力+复杂度计算+优化

    Partition problem 暴力+复杂度计算+优化 题意 2n个人分成两组.给出一个矩阵,如果ab两个在同一个阵营,那么就可以得到值\(v_{ab}\)求如何分可以取得最大值 (n<14 ...

  9. poj 2187 Beauty Contest (凸包暴力求最远点对+旋转卡壳)

    链接:http://poj.org/problem?id=2187 Description Bessie, Farmer John's prize cow, has just won first pl ...

随机推荐

  1. Plugns

    Lombok Translation Rainbow Brackets

  2. 为什么 char c = 'A';c += 32; 结果输出的是 'a'?

    首先 char 类型的数据只要参与运行会先转换为 int 类型数值(在 ASCII 编码表中 'A' 对应十进制的 65),那么 'A' 转换为 int 为 65,65 + 32 = 97,+= 包含 ...

  3. node+ajax实战案例(1)

    1.mysql入门 1.1.数据库相关概念 1.1.1.什么是数据? 描述事物的符号记录称为数据,描述事物的符号可以是数字.文字.声音.图片.视频等,有多种表现形式,都可以经过数字化后存入计算机 1. ...

  4. js语法基础入门(5.2)

    5.2.循环结构 当一段代码被重复调用多次的时候,可以用循环结构来实现,就像第一个实例中出现的场景一样,需要重复询问对方是否有空,这样就可以使用循环结构来搞定 5.2.1.for循环语句 //语法结构 ...

  5. Dynamics CRM 365 不用按钮工具,直接用js脚本控制按钮的显示隐藏

    Dynamics CRM 365 不用按钮工具,直接用js脚本控制按钮的显示隐藏: try { // 转备案按钮 let transferSpecialRequestButton = parent.p ...

  6. 五.数据库同步,创建django用户,用户登陆过程

    (1)配置数据库 项目目录/settings.py是一个普通的python模块,每项配置都是一key/value 数据库的配置是以dict的形式存放在这个模块中,key名为:DATABASES DAT ...

  7. 每天一个Linux命令(cd)

    cd cd的详细信息 cd:不是程序,跳转当前路径(只能跳转当前路径一下的路径,若是其他路径,要写完整路径)                                  语法:cd [目录文件] ...

  8. CentOS7下普通账号通过systemctl管理服务需要输入root密码问题

    问题描述: 使用普通账号test通过systemctl启动系统服务提示需要输入root密码: 解决方案: 根据上面提示得知权限由polkit进行管理,对应的是org.freedesktop.syste ...

  9. css div如何隐藏?

    在我们平时布局网站的时候,想要把div进行隐藏,但是很多人不知道css控制div显示隐藏?下面我们来讲解一下css如何让div隐藏. 1.使用display:none来隐藏div 我们可以使用disp ...

  10. Python——数据库like模糊查询

    在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%.将在Python中执行的sql语句改为:sql = "SELECT * FROM table_test WHERE va ...