Submission #1267215

#TimeUsernameProblemLanguageResultExecution timeMemory
1267215Nika533Flooding Wall (BOI24_wall)C++20
8 / 100
173 ms436 KiB
#include <bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define pb push_back
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
#define MOD 1000000007
using namespace std;

const int N=5e5+5;
int n,a[N],b[N],p[N];



main() {
    cin>>n; int mx=0; p[0]=1;
    for (int i=1; i<=n; i++) cin>>a[i];
    for (int i=1; i<=n; i++) cin>>b[i];

    int ans=0;
    for (int mask=0; mask<(1<<n); mask++) {
        int arr[n+2]; arr[0]=0; arr[n+1]=0;
        for (int i=1; i<=n; i++) {
            if (mask&(1<<(i-1))) arr[i]=b[i];
            else arr[i]=a[i];
        }
        int pref[n+2],suf[n+2]; pref[0]=0; suf[n+1]=0;
        for (int i=1; i<=n; i++) pref[i]=max(pref[i-1],arr[i]);
        for (int i=n; i>=1; i--) suf[i]=max(suf[i+1],arr[i]);
        for (int i=1; i<=n; i++) {
            int h=min(pref[i-1],suf[i+1]);
            ans+=max(0ll,h-arr[i]);
            ans%=MOD;
        }
    }
    cout<<ans<<endl;
}

Compilation message (stderr)

Main.cpp:17:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   17 | main() {
      | ^~~~
#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...