Submission #1167150

#TimeUsernameProblemLanguageResultExecution timeMemory
1167150LudisseyCalvinball championship (CEOI15_teams)C++20
10 / 100
59 ms131072 KiB
#include <bits/stdc++.h> #define int long long #define sz(a) (int)a.size() #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() using namespace std; const int MOD=1e9+7; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<vector<int>> dp(n,vector<int>(n,0)); dp[0][0]=1; for (int i = 1; i < n; i++) { for (int j = 0; j < n; j++) { dp[i][j]=(dp[i-1][j]*(j+1))%MOD; if(j>0) dp[i][j]=(dp[i][j]+dp[i-1][j-1])%MOD; } } vector<int> a(n); for (int i = 0; i < n; i++) cin >> a[i]; int mx=1; int sm=1; for (int i = 1; i < n-1; i++) { int nsm=0; for (int j = 0; j < n; j++) { nsm+=dp[(n-i)-2][j]; } nsm=(nsm*(a[i]-1)*(mx+1)); if(a[i]==1) continue; mx=max(a[i],mx); sm+=(nsm%MOD); } sm=(sm+a[n-1]-1)%MOD; cout << sm << "\n"; 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...