二分法模板

//ffffffvtttttt  探索满足条件的左边界
int bsearch_1(int l, int r) {
	while(l < r) {
		int mid = l + r >> 1;
		if(check(mid))	r = mid;
		else	l = mid + 1;
	}
	return l;			
}
//ttttttvffffff 探索满足条件的右边界
int bsearch_2(int l, int r) {
	while(l < r) {
		int mid = l + r + 1 >> 1;
		if(check(mid))	l = mid;
		else r = mid - 1;
	}
	return l;
}
Table of Contents