Submission #422740

#TimeUsernameProblemLanguageResultExecution timeMemory
422740KienTranluvChaengCalvinball championship (CEOI15_teams)C++17
100 / 100
527 ms584 KiB
#include <bits/stdc++.h>
#define mod 1000007

using namespace std;

const int O = 1e4 + 1;

int n, f[2][O], a[O], Max[O];

main(){
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    cin >> n;
    for (int i = 1; i <= n; ++ i) cin >> a[i], Max[i] = max(Max[i - 1], a[i]);

    int bit = 0;
    for (int i = 0; i <= n; ++ i) f[bit][i] = 1;

    int ans = 1;
    for (int i = n; i >= 1; -- i){
        bit ^= 1;
        for (int j = 1; j <= n; ++ j){
            f[bit][j] = f[bit ^ 1][j + 1] + 1ll * f[bit ^ 1][j] * j % mod;
            f[bit][j] %= mod;
            if (j < a[i]) ans = (ans + f[bit ^ 1][max(Max[i - 1], j)]) % mod;
        }
    }
    cout << ans;
    return 0;
}

Compilation message (stderr)

teams.cpp:10:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   10 | 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...