• Testing Round #12 B


    Description

    A restaurant received n orders for the rental. Each rental order reserve the restaurant for a continuous period of time, the i-th order is characterized by two time values — the start time li and the finish time ri (li ≤ ri).

    Restaurant management can accept and reject orders. What is the maximal number of orders the restaurant can accept?

    No two accepted orders can intersect, i.e. they can't share even a moment of time. If one order ends in the moment other starts, they can't be accepted both.

    Input

    The first line contains integer number n (1 ≤ n ≤ 5·105) — number of orders. The following n lines contain integer values li and ri each (1 ≤ li ≤ ri ≤ 109).

    Output

    Print the maximal number of orders that can be accepted.

    Examples
    input
    2
    7 11
    4 7
    output
    1
    input
    5
    1 2
    2 3
    3 4
    4 5
    5 6
    output
    3
    input
    6
    4 8
    1 5
    4 7
    2 5
    1 3
    6 8
    output
    2
    贪心,求最多的不相交线段
    #include<bits/stdc++.h>
    using namespace std;
    struct P
    {
        int s,e;
    }He[5*100000];
    bool cmd(P x,P y)
    {
        return x.e<y.e;
    }
    int main()
    {
        int n;
        cin>>n;
        for(int i=0;i<n;i++)
        {
            cin>>He[i].s>>He[i].e;
        }
        sort(He,He+n,cmd);
        int sum=He[0].e;
        int pos=1;
        for(int i=0;i<n;i++)
        {
            if(He[i].s>sum)
            {
                sum=He[i].e;
                pos++;
            }
        }
        cout<<pos<<endl;
        return 0;
    }
    

      

  • 相关阅读:
    zz:android sharedpreferences用法
    Android viewHolder
    Python学习笔记~
    zz:Java多线程编程总结
    zz:Android 2.1 源码结构
    onSaveInstanceState的用法
    zz:如何学习Linux操作系统
    Python学习笔记II
    Python类型转换
    zz:Android应用程序基础
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/5679067.html
Copyright © 2020-2023  润新知