#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; typedef long long int ll; typedef pair P; int main() { int n; cin>>n; int a[3030], b[3030], d[3030]; for(int i=0; i<=n; i++) cin>>a[i]; for(int i=0; i<=n; i++) cin>>b[i]; for(int i=0; i>d[i]; sort(d, d+n); int l=0, r=n+1; while(r-l>1){ int m=(l+r)/2; if(m==0){ l=m; continue; } bool dp[3030][3030]={}; dp[0][0]=1; for(int i=0; i<=n; i++){ for(int j=0; j<=n; j++){ if(!dp[i][j] || m-i-j-1<0) continue; if(i=d[m-i-j-1]){ dp[i+1][j]=1; } if(j=d[m-i-j-1]){ dp[i][j+1]=1; } } } bool ok=0; for(int i=0; i<=m; i++){ if(dp[i][m-i]){ ok=1; break; } } if(ok) l=m; else r=m; } cout<