Submission #945294

#TimeUsernameProblemLanguageResultExecution timeMemory
945294bngybongybrdFancy Fence (CEOI20_fancyfence)C++17
13 / 100
13 ms3164 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int n; int w[100005]; int h[100005]; int ans = 0; int width = 0; int mod = 1000000000 + 7; signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> n; for(int i = 0; i < n; i++)cin >> h[i]; for(int i = 0; i < n; i++){ cin >> w[i]; width += w[i]; width %= mod; // ans += (h[i]-1)*w[i]; // vertical rectangle for h=2 } // cout << width << "\n"; // cout << ans << "\n"; if(width % 2 == 0){ // all rectangle for h=1 ans += ((width+1)*(width/2))%mod; ans %= mod; } else { ans += ((width*(width-1)/2)+width)%mod; ans %= mod; } // cout << ans << "\n"; width = 0; for(int i = 0; i < n; i++){ if(h[i] > 1){ width += w[i]; width %= mod; } else { if(width != 0){ if(width % 2 == 0){ // all rectangle for h=2 ans += ((width+1)*(width/2)*2)%mod; ans %= mod; } else { ans += (((width*(width-1)/2)+width)*2)%mod; ans %= mod; } } width = 0; } if(i == (n-1)){ if(width != 0){ if(width % 2 == 0){ // all rectangle for h=2 ans += ((width+1)*(width/2)*2)%mod; ans %= mod; } else { ans += (((width*(width-1)/2)+width)*2)%mod; ans %= mod; } } width = 0; } } cout << ans; return 0; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...