Submission #670993

#TimeUsernameProblemLanguageResultExecution timeMemory
670993quocnguyen1012Calvinball championship (CEOI15_teams)C++14
0 / 100
188 ms416 KiB
#include "bits/stdc++.h"

using namespace std;

const int mod = 1e6 + 7;
const int maxn = 1005;

void add(int &x, int y) {
  x += y;
  if (x >= mod) x -= mod;
  if (x < 0) x += mod;
}

int main() {
  ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

  int n; cin >> n;
  vector<int> a(n);
  for (auto &i : a) cin >> i;
  vector<int> f(n + 5), g(n + 5);
  f[1] = 1;
  for (int i = 0; i < n; ++i) {
    for (int j = 1; j <= a[i]; ++j) {
      g[j] = 1ll*f[j]*j%mod + 1ll*f[j - 1]*(j - 1)%mod;
     // cerr << g[j] << " ";
    }
    //cerr << '\n';
    f = g;
    fill(g.begin(), g.end(), 0);
  }
  int ans = 0;
  for (int i = 1; i <= a[n - 1]; ++i) 
    add(ans, f[i]);
  cout << ans;
}
#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...