View Code of Problem 4044

#include <algorithm>
#include <cctype>
#include <cmath>
#include <cstring>
#include <iostream>
#include <set>
#include <string>
#include <vector>
using namespace std;

struct S
{
    int begin, end;
} s[25];

bool cmp(S a, S b)
{
    if (a.begin == b.begin)
        return a.end - a.begin < b.end - b.begin;
    else
        return a.begin > b.begin;
}

int main()
{
    int n;
    while (cin >> n && n != 0)
    {
        for (int i = 0; i < n; i++)
            cin >> s[i].begin >> s[i].end;
        sort(s, s + n, cmp);
        int end = s[0].end;
        int cnt = 0;
        for (int i = 0; i < n;i++){
            if(s[i].end <= end)
            {
                end = s[i].begin;
                cnt++;
            }
        }
        cout << cnt << endl;
    }
}

Double click to view unformatted code.


Back to problem 4044