#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, m, n) for(int i=int(m);i inline void chmin(T1 &a, T2 b) { if (a > b) a = b; } template inline void chmax(T1 &a, T2 b) { if (a < b) a = b; } //改造 typedef long long int ll; using namespace std; #define INF (1 << 30) - 1 #define INFl (ll)5e15 #define DEBUG 0 //デバッグする時1にしてね #define dump(x) cerr << #x << " = " << (x) << endl #define MOD 1000000007 //ここから編集する class Solve { public: void input() { } void solve() { input(); int n; cin >> n; vector a(n + 1), b(n + 1); rep(i, 0, n + 1) cin >> a[i]; rep(i, 0, n + 1) cin >> b[i]; ll ans = 0ll; ll SUM = 0ll; for (int i = 0; i < n + 1; ++i) { int bi = n - i; (SUM += b[i]) %= MOD; ll tmp = (a[bi] * SUM) % MOD; (ans += tmp) %= MOD; } cout << ans << endl; } }; int main() { cin.tie(0); ios::sync_with_stdio(false); Solve().solve(); return 0; }