Submission #851258

#TimeUsernameProblemLanguageResultExecution timeMemory
851258Jawad_Akbar_JJFancy Fence (CEOI20_fancyfence)C++14
15 / 100
57 ms4696 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 1e5 + 10; int r[N][3]; int w[N]; int h[N]; int mod = 1e9 + 7; int power(int a,int b){ if (b==0) return 1; int ans = power(a,b/2); ans = ans*ans; ans %= mod; if (b%2) ans = ans*a; return ans%mod; } int mod_inv(int k){ return power(k,mod-2); } int asd(int a){ int ans = (a*(a+1)); ans = ans%mod; ans = ans*mod_inv(2); ans = ans% mod; return ans; } signed main(){ int n; cin>>n; for (int i=1;i<=n;i++) cin>>h[i]; int ans = 0; for (int i=1;i<=n;i++){ cin>>w[i]; ans += w[i]; ans %= mod; } ans = asd(ans); int ans2 = asd(h[1]); cout<<(ans*ans2)%mod<<endl; return 0; for (int i=n;i>=1;i--){ for (int j=1;j<=h[i];j++){ r[i][j] = r[i+1][j]; ans += (r[i][j]*j)%mod; ans %= mod; r[i][j] += w[i]; r[i][j] %= mod; // cout<<"At "<<i<<" "<<j<<" added "<<r[i][j]*j<<endl; } } cout<<ans<<endl; }
#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...