活动安排问题
第二行到第(n + 1)行包含n个开始时间和结束时间。
开始时间严格小于结束时间,并且时间都是非负整数,小于1000000000
3 1 2 3 4 2 9
2
AC :
#include<stdio.h>
#include<algorithm>
using namespace std;
struct Node{
int a,b;
}s[10005];
bool cmp(Node x,Node y)
{
if(x.b==y.b)
return x.a<y.a;
else
return x.b<y.b;
}
int main()
{
int i,j,n;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d%d",&s[i].a,&s[i].b);
sort(s,s+n,cmp);
int sum=0,m;
for(i=0;i<n;i++)
{
m=1;
for(j=i+1;j<n;j++)
if(s[j].a<s[i].b)
m++;
sum=max(m,sum);
}
printf("%d\n",sum);
}
return 0;
}
#include<algorithm>
using namespace std;
struct Node{
int a,b;
}s[10005];
bool cmp(Node x,Node y)
{
if(x.b==y.b)
return x.a<y.a;
else
return x.b<y.b;
}
int main()
{
int i,j,n;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d%d",&s[i].a,&s[i].b);
sort(s,s+n,cmp);
int sum=0,m;
for(i=0;i<n;i++)
{
m=1;
for(j=i+1;j<n;j++)
if(s[j].a<s[i].b)
m++;
sum=max(m,sum);
}
printf("%d\n",sum);
}
return 0;
}