跟前面某个题一样,都是区间染色问题,还是用我的老方法,区间离散化+二分区间端点+区间处理做的,时间跑的还挺短
vc2R1c3RfZGM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" />
坑爹的情况就是最左端是0,最右端是1e9,区间求的是开区间
#include
#include
#include
#include
using namespace std;
typedef struct
{
int l;
int r;
bool color;
}seg;
seg a[5005];
int t[10005];
int d[10005],ct;
int f[10005];
int find(int x,int n)
{
int l=0,r=n-1,mid=(l+r)/2;
while(ld[mid])l=mid+1;
else r=mid;
mid=(l+r)/2;
}
return mid;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=0;imax){
max=d[i]-left;
a1=left;
a2=d[i];
}
left=d[i+1];
}
}
}
printf("%d %d\n",a1,a2);
return 0;
}