#include <bits/stdc++.h>
using namespace std;
#define lint long long int
int mod=1e9+7;
int main(){
int n;
cin>>n;
vector<lint> h(n);
vector<lint> w(n);
vector<lint> cntw(n,0);
for(int i=0;i<n;i++){
cin>>h[i];
}
for(int i=0;i<n;i++){
cin>>w[i];
if(i==0) cntw[i]=w[i];
else cntw[i]=w[i]+cntw[i-1];
cntw[i]%=mod;
}
lint sum=(((1+cntw[n-1])%mod)*(cntw[n-1]%mod)/2);
lint re=0;
sum%=mod;
for(int i=0;i<n;i++){
if(h[i]==2 && h[i+1]==2) re+=w[i];
else if(h[i]==2){
re+=w[i];
lint huh=(((re+1)%mod)*(re%mod));
huh%=mod;
sum+=huh; sum%=mod;
re=0;
}
}
cout<<sum;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |