Submission #1107871

#TimeUsernameProblemLanguageResultExecution timeMemory
110787112345678Calvinball championship (CEOI15_teams)C++17
100 / 100
158 ms656 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long

const int nx=1e4+5, mod=1e6+7;

ll n, a[nx], h[nx], res, dp[2][nx];

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n;
    for (int i=1; i<=n; i++) cin>>a[i], h[i]=max(h[i-1], a[i]);
    for (int i=1; i<=n; i++) dp[0][i]=1;
    a[0]=1;
    for (int i=1; i<=n; i++) 
    {
        int c=i%2, p=1-c;
        res=(res+(dp[p][h[n-i]])*(a[n-i+1]-1))%mod;
        for (int j=1; j<=n; j++) dp[c][j]=(dp[p][j]*j+dp[p][j+1])%mod; //cout<<"debug "<<i<<' '<<j<<' '<<dp[c][j]<<'\n';
    }
    cout<<(res+1)%mod;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...