Submission #1164205

#TimeUsernameProblemLanguageResultExecution timeMemory
1164205cjtsaiFlooding Wall (BOI24_wall)C++20
12 / 100
43 ms15944 KiB
#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]; vector<int> pre(n+10, 1); for(int i=1; i<n+5; i++) pre[i]=pre[i-1]*2%mod; int twos=0; vector<int> tp(n); for(int i=0; i<n; i++){ tp[i]=twos; if(a[i]==2) twos++; if(b[i]==2) twos++; } int ans=0; twos=0; for(int i=n-1; i>=0; i--){ if(a[i]==1&&b[i]==1){ ans+=2*(pre[twos]-1)*(pre[tp[i]]-1); ans%=mod; }else if(a[i]==2&&b[i]==2){ twos+=2; }else{ ans+=(pre[twos]-1)*(pre[tp[i]]-1); ans%=mod; twos++; } } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...