文章
1
粉丝
0
获赞
0
访问
64
#include <stdio.h>
#include <stdlib.h>
int compar(const void* a,const void* b)
{
return ((int**)a)[0]>((int**)b)[0];
}
int main()
{
int L,M;
scanf("%d %d",&L,&M);
L++;
int** district=(int**)malloc(sizeof(int*)M);
for(int i=0;i<M;i++)
{
district[i]=(int)malloc(sizeof(int)2);
scanf("%d %d",&district[i][0],&district[i][1]);
}
qsort(district,M,sizeof(int*),compar);
for(int i=1;i<M;i++)
{
if(district[i][0]<=district[i-1][1])
district[i][0]=district[i-1][0];
}
int max_right=district[0][1];
int count=0;
for(int i=1;i<M;i++)
{
if(district[i][0]==district[i-1][0])
max_right=district[i][1]>max_right?district[i][1]:max_right;
else
{
district[i-1][1]=max_right;
count+=(district[i-1][1]-district[i-1][0]+1);
max_right=district[i][1];
}
}
count+=(max_right-district[M-1][0]+1);
printf("%d",L-count);
return 0;
}
//不太理解哪里出错了,球球各位大佬帮忙
登录后发布评论
暂无评论,来抢沙发