ACM算法题之区间

 

★题目描述

有一天,杰哥在数轴上玩游戏,杰哥有N个区间,第i个区间的端点是li和ri,即第i个区间覆盖了[li,ri],他想知道是否存在一个编号最小的区间包含所有的区间。如果存在,则输出区间编号,否则输出"-1".

区间包含指的是,假设一个区间[a,b]包含另外一个区间[c,d],需要满足a<=c<=d<=b.

★输入格式

第一行一个整数N表示区间个数,N<=100000

接下去N行每行2个整数li,ri表示第i个区间的端点,1<=li<=ri<=1000000000

对于30%的数据,N<=100, 1<=li<=ri<=100

对于80%的数据,N<=1000, 1<=li<=ri<=1000

对于100%的数据,N<=100000, 1<=li<=ri<=1000000000

★输出格式

一个整数表示满足要求区间的编号。若不存在则输出-1。

★样例输入1

3
1 1
2 2
3 3

★样例输出1

-1

★样例输入2

6
1 5
2 3
1 10
7 10
7 7
10 10

★样例输出2

3

★实例代码

#include 
using namespace std;
int main()
{
    int size,a,b,i=1,index=-1;
    int arr[2];
    cin>>size;
    cin>>a>>b;
    arr[0] = a;
    arr[1] = b;
    size--;
    while(size--)
    {
        i++;
        cin>>a>>b;
        if((a<=arr[0] && b>arr[1]) || (a=arr[1]))
        {
            index = i;
            arr[0]=a;
            arr[1]=b;
        }
    }
    cout<

 

你可能感兴趣的:(ACM,区间,ACM)