Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <stdlib.h>#define MaxN 100010int n;struct node{int x,y;}range,S[MaxN];int cmp(const void * a,const void * b){struct node *p=(struct node *)a,*q=(struct node *)b;if(p->x==q->x)return p->y-q->y;return p->x-q->x;}int max(int a,int b){return a>b?a:b;}int f(int l,int &x){int k=-1;for(;x<n&&S[x].x<=l;x++)if(S[x].y>=l)k=max(k,S[x].y);return k;}int main(){int i,k,ans=0;scanf("%d%d%d",&n,&range.x,&range.y);for(i=0;i<n;i++){scanf("%d%d",&S[i].x,&S[i].y);}qsort(S,n,sizeof(S[0]),cmp);for(i=0,k=range.x;i<n;){k=f(k,i);if(k==-1){printf("-1\n");