#include using namespace std; using ll = long long; #define REP(i,n) for(ll i=0; i> N >> S; vector X(N), W(N), sum(N+1); vector dp(N, vector(N,1ll<<60)); REP(I,N) cin >> X[I]; REP(i,N) cin >> W[i]; REP(i,N) sum[i+1] = sum[i] + W[i]; REP(i,N) dp[i][i] = abs(S - X[i]) * sum[N]; REP(r,N) for(ll l=r; l>=0; l--){ ll w = sum[N] - sum[r+1] + sum[l]; if(0 < l) dp[l-1][r] = min({dp[l-1][r], dp[l][r] + w * (X[l] - X[l-1]), dp[r][l] + w * (X[r] - X[l-1])}); if(r+1 < N) dp[r+1][l] = min({dp[r+1][l], dp[l][r] + w * (X[r+1] - X[l]), dp[r][l] + w * (X[r+1] - X[r])}); } cout << min(dp[0][N-1], dp[N-1][0]) << "\n"; return 0; }