Submission #290380

#TimeUsernameProblemLanguageResultExecution timeMemory
290380HeheheCalvinball championship (CEOI15_teams)C++14
100 / 100
402 ms632 KiB
#include<bits/stdc++.h> //:3 using namespace std; typedef long long ll; #define all(a) (a).begin(), (a).end() #define ff first #define ss second #define pb push_back #define mp make_pair #define pi pair<int, int> #define sz(x) (int)((x).size()) //#define int long long const int dx[] = {0, 1, 0, -1}; const int dy[] = {1, 0, -1, 0}; const ll inf = 2e9; const ll mod = 1e6 + 7; const int N = 1e4 + 11; const int X = 1e6; const ll INF64 = 3e18 + 1; const double eps = 1e-14; const double PI = acos(-1); //ifstream in(".in"); //ofstream out(".out"); int n, a[N], dp[2][N], mx[N]; void solve(){ cin >> n; for(int i = 1; i <= n; i++){ cin >> a[i]; mx[i] = max(mx[i - 1], a[i]); } //dp[i][j] - ways of choosing i more elements having j as the maximum element in our subsequence for(int i = 0; i <= n; i++){ dp[0][i] = 1; //one way of adding 0 elements } int ans = a[n] * 1ll, t = 1; for(int i = 1; i < n; i++){ for(int j = 1; j <= n; j++) dp[t][j] = (dp[1 - t][j + 1] + 1LL * dp[1 - t][j] * j % mod) % mod; ans = (ans + 1LL * dp[t][mx[n - i - 1]] * (a[n - i] - 1) % mod) % mod; t = 1 - t; } cout << (ans + mod) % mod << '\n'; } int32_t main(){ ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0); //cout << setprecision(6) << fixed; int T = 1; //cin >> T; while(T--){ solve(); } }
#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...