和那个选择不相交区间类似呀,,也是先排序,,然后好好的分析.
处理好情况就行..
贴出代码:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int maxn = 1111;
int n;
struct node{
int x;
int y;
}q[maxn], temp;
bool cmp(const node &a, const node &b)
{
return a.y < b.y;
}
int main()
{
while (scanf("%d", &n) != EOF)
{
for (int i = 0; i < n; i++)
{
scanf("%d%d", &q[i].x, &q[i].y);
}
sort(q, q + n, cmp);
int i = 1;
int cnt = 1;
temp.x = q[0].x;
temp.y = q[0].y;
while (i < n)
{
if (temp.x > q[i].x)
{
temp.x = q[i].x;
}
if (temp.y < q[i].x)
{
cnt++;
temp.x = q[i].x;
temp.y = q[i].y;
}
i++;
}
printf("%d\n", cnt);
}
system("pause");
return 0;
}