给你 nn 条在数轴上的线段,每条线段的端点都是整数。线段可以相互交叉,重叠或甚至重合。每个线段的参数是左端点和右端点的坐标。
考虑坐标 11 和 mm 以及它们之间的坐标为整数的点。您的任务是打印所有没有被线段覆盖的点。一条线段会覆盖它的端点。
#include <cstdio>
#include <iostream>
#include <string.h>
using namespace std;
int main ()
{
int n,m,b,c,sum=0,first=1;
int a[100];
memset(a,0,sizeof(a));
cin>>n>>m;
for (int i=1;i<=n;i++)
{
cin>>b>>c;
for (int d=b;d<=c;d++)
{
a[d]=1;
}
}
for (int j=1;j<=m;j++)
{
if (a[j]!=1)
{
sum++;
}
}
cout <<sum<<endl;
for (int j=1;j<=m;j++)
{
if(!a[j])
{
if(first) first=0;
else cout<<" ";
printf("%d ",j);
}
}
return 0;
}