#include <bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define pb push_back
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
#define MOD 1000000007
using namespace std;
const int N=5e5+5;
int n,a[N],b[N],p[N];
main() {
cin>>n; int mx=0; p[0]=1;
for (int i=1; i<=n; i++) cin>>a[i];
for (int i=1; i<=n; i++) cin>>b[i];
int ans=0;
for (int mask=0; mask<(1<<n); mask++) {
int arr[n+2]; arr[0]=0; arr[n+1]=0;
for (int i=1; i<=n; i++) {
if (mask&(1<<(i-1))) arr[i]=b[i];
else arr[i]=a[i];
}
int pref[n+2],suf[n+2]; pref[0]=0; suf[n+1]=0;
for (int i=1; i<=n; i++) pref[i]=max(pref[i-1],arr[i]);
for (int i=n; i>=1; i--) suf[i]=max(suf[i+1],arr[i]);
for (int i=1; i<=n; i++) {
int h=min(pref[i-1],suf[i+1]);
ans+=max(0ll,h-arr[i]);
ans%=MOD;
}
}
cout<<ans<<endl;
}
Compilation message (stderr)
Main.cpp:17:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
17 | main() {
| ^~~~
# | 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... |