Submission #1155689

#TimeUsernameProblemLanguageResultExecution timeMemory
1155689adiyerFlooding Wall (BOI24_wall)C++20
8 / 100
145 ms472 KiB
#include <bits/stdc++.h> #define all(x) x.begin(), x.end() #define len(s) (ll) s.size() #define pb push_back #define F first #define S second using namespace std; typedef long long ll; const int N = 5e5 + 17; const int P = 31; const int mod = 1e9 + 7; const ll inf = 1e18; ll n, res; ll a[N], b[N], h[N], p[N], s[N]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for(ll i = 1; i <= n; i++) cin >> a[i]; for(ll i = 1; i <= n; i++) cin >> b[i]; for(ll msk = 0; msk < (1 << n); msk++){ for(ll i = 0; i < n; i++){ if((msk >> i & 1)) h[i + 1] = a[i + 1]; else h[i + 1] = b[i + 1]; } ll cur = res; for(ll i = 1; i <= n; i++) p[i] = max(p[i - 1], h[i]); for(ll i = n; i >= 1; i--) s[i] = max(s[i + 1], h[i]); for(ll i = 1; i <= n; i++) res += max(min(p[i - 1], s[i + 1]) - h[i], 0ll); res %= mod; } cout << res; }
#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...