hihoCoder太阁最新面经算法竞赛18 register

Ended

Participants:65

Verdict:Accepted
Score:100 / 100
Submitted:2016-12-17 00:02:39

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <stdlib.h>
#define MaxN 100010
int 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");
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX