Submission #742563

#TimeUsernameProblemLanguageResultExecution timeMemory
742563Dan4LifeFancy Fence (CEOI20_fancyfence)C++17
0 / 100
2 ms340 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define sz(a) (int)a.size() const int mxN = (int)1e5+10; const int MOD = (int)1e9+7; int Tw, Th, inv; int n, h[mxN], w[mxN]; vector<pair<int,int>> v; int poww(int a, int b){ if(!b) return 1; int x = poww(a,b/2); x*=x, x%=MOD; if(b&1) x*=a, x%=MOD; return x; } int mul(int a, int b) { return a*b % MOD; } int comb(int a){return mul(mul(a,a+1),inv);} int32_t main(){ cin >> n; int ans = 0; inv = poww(2,MOD-2); for(int i = 1; i <= n; i++) cin >> h[i]; for(int i = 1; i <= n; i++) cin >> w[i]; for(int i = 1; i <= n; i++){ int W = w[i]; Tw+=w[i], Th+=h[i]; Tw%=MOD, Th%=MOD; while(i<n and h[i]==h[i+1]) W+=w[++i], W%=MOD; v.pb({h[i],W}); } cout << mul(comb(Tw),comb(Th)); return 0; n = sz(v); for(auto [h,w] : v){ if(h==1) continue; ans+=comb(w)*2, ans%=MOD; } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...