思路
当一头奶牛左边D距离内而且右边D距离内有身高至少是它的两倍的奶牛
不难想到使用单调队列(机房大佬Canstant0x5F3759DF使用的线段树我是不会)
从左到右、从右到左各扫一遍即可。
代码
#include <iostream>
#include <cstdio>
#include <queue>
#include <algorithm>
#define int long long
using namespace std;
const int MAXN = 5e4 + 5;
int n, d, cnt;
bool ans1[MAXN], ans2[MAXN];
deque<int> q;
struct cow
{
int x, h;
bool operator <(const cow &p)const