![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/57792be6305764756a447fac3d69fb03.png)
思路:
我们处理处每个点它最多往左拓展多少位。
而对于一个点,它只要一直往前找,找的过程中用链表优化就行了。
右端也是一样。
c o d e code code
#include<iostream>
#include<cstdio>
#include<algorithm>
#define ll long long
#define re register
using namespace std;
const ll MAXN = 5e5 + 10;
int n, a[MAXN], b[MAXN * 2], last[MAXN], next[MAXN];
int main() {