#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); #define RD(v) int v=0;{int c;while(c=*rp++-48,c>=0)v=v*10+c;} int a[200001]; int ar[200001]; int en[200001]; int ei[200001]; int eb[400000]; union{ int uv[400000]; struct{ int gn[200001]; int gb1[200001]; int gb2[200001]; int zi[32],zv[32]; }s; }u; #define uv u.uv #define gn u.s.gn #define gb1 u.s.gb1 #define gb2 u.s.gb2 #define zi u.s.zi #define zv u.s.zv void f1(int i,int p){ int b1=0; int b2=0; for(int k=0;k