Submission #1234924

#TimeUsernameProblemLanguageResultExecution timeMemory
1234924gry3125Fancy Fence (CEOI20_fancyfence)C++20
30 / 100
80 ms3524 KiB
#include <bits/stdc++.h> #define ll long long int #define pb push_back #define fi first #define se second using namespace std; int main() { int n; cin >> n; vector<ll> h(n), w(n); for (int i = 0; i < n; i++) cin >> h[i]; for (int i = 0; i < n; i++) cin >> w[i]; deque<pair<ll,ll>> r; ll cnt = 0; for (int i = 0; i < n; i++) { if (r.empty()) {r.pb({h[i], w[i]}); continue;} if (h[i] != r.back().fi) {r.pb({h[i], w[i]}); continue;} r.back().se += w[i]; r.back().se %= 1000000007; } ll base = 0; for (int i = r.size()-1; i >= 0; i--) { ll hh = r[i].fi, ww = r[i].se; ll hs = ((hh+1)*hh)/2, ws = ((ww+1)*ww)/2; hs %= 1000000007; ws %= 1000000007; cnt += (hs*ws)%1000000007; cnt %= 1000000007; ll ch = (ww*base)%1000000007; cnt += ch*hs; cnt %= 1000000007; base += ww; base %= 1000000007; } cout << cnt; 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...