#include <stdio.h>
#include<iostream>
#include <cmath>
#define m 10050
using namespace std;
int a[m<<1],b[m<<1];
int main()
{
int n,s,v,l;
while(scanf("%d",&n)!=EOF&&n)
{
l=1;
for(int i=0;i<n;i++)
{
scanf("%d %d",&a[i],&b[i]);
}
for(int i=0;i<n-1;i++)
{
int t,g;
for(int j=0;j<n-i-1;j++)
{
if(b[j+1]<b[j])
{
t=a[j];g=b[j];
a[j]=a[j+1];b[j]=b[j+1];
a[j+1]=t; b[j+1]=g;
}
}
}
s=a[0];v=b[0];
for(int i=1;i<n;i++)
{
if(a[i]>=v)
{
l++;
v=b[i];
}
}
printf("%d\n",l);
}
return 0;
}
这是在我没学贪心算法之前没有A过的那一题,当时觉得好牛逼。
现在就想一巴掌拍死当时的自己。
这道题就是1A过的。
没有什么难度。
就是先做一个冒泡排序把先结束的节目放在前面。
然后逐个比较。
最后输出一共有几个节目就OK了。