Submission #1121750

#TimeUsernameProblemLanguageResultExecution timeMemory
1121750coolboy19521Calvinball championship (CEOI15_teams)C++17
0 / 100
18 ms65536 KiB
#include"bits/stdc++.h"
using namespace std;

using ll = long long;

const int md = 1000000007;
const int mxN = 10004;

ll dp[mxN][mxN];
int a[mxN];

main() {
    int N;
    cin >> N;

    for (int i = 1; i <= N; i ++) {
        cin >> a[i];
    }

    dp[0][0] = 1;
    for (int i = 1; i <= N; i ++) {
        for (int j = 1; j <= i; j ++) {
            dp[i][j] = (dp[i - 1][j] * j % md + dp[i - 1][j - 1]) % md;
        }
    }

    int mx = 0;
    for (int i = 1; i <= N; i ++) {
        mx = max(mx, a[i]);
    }

    ll sm = 0;
    for (int i = 1; i <= mx; i ++) {
        sm = (sm + dp[N][i]) % md;
    }

    for (int i = N; 1 <= i; i --) {
        mx = 0;
        for (int j = 1; j <= i - 1; j ++) {
            mx = max(mx, a[j]);
        }
        if (a[i] < mx) {
            sm = (sm + md - dp[i - 1][mx] * (mx - a[i])) % md;
        }
    }

    cout << sm << endl;
}

Compilation message (stderr)

teams.cpp:12:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   12 | 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...