#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using namespace atcoder; typedef long long ll; typedef pair P; using mint=modint1000000007; using ull=unsigned long long; int n; int a[200020], b[200020]; int pra[400040], prb[400040]; int v[200020]; const int sq=500; int s[5000]; vector vs[5000]; bool sorted[5000]; int main() { cin>>n; for(int i=0; i>a[i]; } for(int i=0; i>b[i]; } fill(pra, pra+400001, -1); fill(prb, prb+400001, -1); ll ans=0; for(int i=0; i=l-sq*l1 && i<=r-sq*r1){ v[i+sq*l1]=(x+v[i+sq*l1]+s[l1]); vs[l1][i]=v[i+sq*l1]; }else{ v[i+sq*l1]=(v[i+sq*l1]+s[l1]); vs[l1][i]=v[i+sq*l1]; } } s[l1]=0; sorted[l1]=0; //sort(vs[l1].begin(), vs[l1].end()); return; } for(int i=0; i=l-sq*l1){ v[i+sq*l1]=(x+v[i+sq*l1]+s[l1]); vs[l1][i]=v[i+sq*l1]; }else{ v[i+sq*l1]=(v[i+sq*l1]+s[l1]); vs[l1][i]=v[i+sq*l1]; } } s[l1]=0; sorted[l1]=0; //sort(vs[l1].begin(), vs[l1].end()); for(int i=0; i