#include #define int long long #define uint unsigned long long #define il inline #define ct const #define dl double #define pk push_back #define fi first #define N 3010 #define se second #define pii pair #define inf (int)(1000000000000000000) using namespace std; #define lowbit(x) (x&-x) #define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++) char buf[1<<21],*p1=buf,*p2=buf; il int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&ch<='9'){ x=(x<<1)+(x<<3)+(ch^48);ch=getchar(); } return x*f; } char f__[40]; il void write(int x){ int cnt=0; if(x<0){ putchar('-');x=-x; } if(!x) putchar('0'); while(x){ f__[cnt++]=x%10+'0';x/=10; } while(cnt) putchar(f__[--cnt]); } int n,p[N],sum[N][N],f[N],g[N],s[N][N]; il void solve(int l,int r,int L,int R){ if(l>r) return; int mid=(l+r)>>1,p=0; for(int i=L;i<=min(mid-1,R);++i){ int tmp=f[i]+s[i][mid]; if(tmp