usingnamespacestd; constint MAX=2050; longlong x[MAX], y[MAX], xs[MAX], ys[MAX]; int ans; int(int arr[], int l, int r, int v){ while(l <= r){ int m = (l+r)/2; if(arr[m] == v) return m; if(arr[m] < v) l = m+1; else r = m-1; } return-1 } int main(){ ios::sync_with_stdio(false); cin.tie(0); int n, m, xx; cin>>n>>m; for(int i = 0; i < n; i++) cin>>x[i]; for(int i = 0; i < m; i++) cin>>y[i]; cin>>xx; for(int i = 0; i < MAX; i++) xs[i]=ys[i]=xx+1; for(int i = 0; i < n; i++){ longlong sum = 0; for(int j = i; j < n; j++){ sum += x[j]; xs[j-i] = min(xs[j-i], sum); } } for(int i = 0; i < m; i++){ longlong sum = 0; for(int j = i; j < m; j++){ sum += y[j]; ys[j-i] = min(ys[j-i], sum); } } for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if(xs[i]*ys[j] <= xx) ans = max(ans, (i+1)*(j+1)); } } cout<<ans<<endl; return0; }
近期评论