제출 #591497

#제출 시각아이디문제언어결과실행 시간메모리
591497andrei_boacaCalvinball championship (CEOI15_teams)C++14
20 / 100
58 ms16624 KiB
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll n,v[10005],dp[1005][1005],ans;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>v[i];
    for(int i=1;i<=n;i++)
    {
        dp[1][i]=i+1;
        dp[0][i]=1;
    }
    for(ll i=2;i<=n;i++)
        for(ll j=1;j<=n;j++)
        {
            ll val=(1LL*j*dp[i-1][j])%mod;
            val=(val+dp[i-1][j+1])%mod;
            dp[i][j]=val;
        }
    int maxim=0;
    for(int i=1;i<=n;i++)
    {
        bool newmax=0;
        if(v[i]>maxim)
        {
            maxim=v[i];
            newmax=1;
        }
        ll val=(1LL*((v[i]-1)*dp[n-i][maxim-newmax]))%mod;
        ans=(ans+val)%mod;
    }
    ans++;
    ans%=mod;
    cout<<ans;
    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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...