#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int,int>
#define pb push_back
#define all(x) x.begin(),x.end()
#define ff first
#define ss second
const int mod=1e9+7;
signed main(){
ios_base::sync_with_stdio(false);cin.tie(0);
int n;cin>>n;
vector<int> a(n), b(n);
for(int i=0; i<n; i++) cin>>a[i];
for(int i=0; i<n; i++) cin>>b[i];
int ans=0;
for(int i=0; i<(1ll<<n); i++){
vector<int> v(n);
for(int j=0; j<n; j++){
if((1ll<<j)&i) v[j]=a[j];
else v[j]=b[j];
}
int tmp=0;
vector<int> hl(n), hr(n);
for(int j=0; j<n; j++){
tmp=max(tmp, v[j]);
hl[j]=tmp;
}
tmp=0;
for(int j=n-1; j>=0; j--){
tmp=max(tmp, v[j]);
hr[j]=tmp;
}
int tans=0;
//for(int j=0; j<n; j++) cout<<hl[j]<<'/'<<hr[j]<<' ';
//cout<<'\n';
for(int j=0; j<n; j++){
tans+=min(hl[j], hr[j])-v[j];
tans%=mod;
}
//cout<<tans<<' ';
ans+=tans;
ans%=mod;
}
cout<<ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |