标签:clip index dimen assert queue max operator bool integer
You are given a sequence a1,?a2,?...,?an of one-dimensional segments numbered 1 through n. Your task is to find two distinct indices i and j such that segment ai lies within segment aj.
Segment [l1,?r1] lies within segment [l2,?r2] iff l1?≥?l2 and r1?≤?r2.
Print indices i and j. If there are multiple answers, print any of them. If no answer exists, print -1 -1.
The first line contains one integer n (1?≤?n?≤?3·105) — the number of segments.
Each of the next n lines contains two integers li and ri (1?≤?li?≤?ri?≤?109) — the i-th segment.
Print two distinct indices i and j such that segment ai lies within segment aj. If there are multiple answers, print any of them. If no answer exists, print -1 -1.
5
1 10
2 9
3 9
2 3
2 9
2 1
3
1 5
2 6
6 20
-1 -1
寻找是否存在一个段包含在另一个段里,输出段的编号
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <stack> #include <cstdlib> #include <iomanip> #include <cmath> #include <cassert> #include <ctime> #include <map> #include <set> using namespace std; #pragma comment(linker, "/stck:1024000000,1024000000") #define lowbit(x) (x&(-x)) #define max(x,y) (x>=y?x:y) #define min(x,y) (x<=y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.1415926535897932384626433832 #define ios() ios::sync_with_stdio(true) #define INF 0x3f3f3f3f #define mem(a) ((a,0,sizeof(a))) typedef long long ll; struct node { int x,y,z; bool operator<(const node &a) { return a.x==x?a.y<y:a.x>x; } }e[300006]; int n; int main() { scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d%d",&e[i].x,&e[i].y); e[i].z=i; } sort(e,e+n); for(int i=0;i<n-1;i++) { if(e[i].x<=e[i+1].x && e[i].y>=e[i+1].y) { printf("%d %d\n",e[i+1].z+1,e[i].z+1); return 0; } } printf("-1 -1\n"); return 0; }
标签:clip index dimen assert queue max operator bool integer
原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/8977281.html