Submission #142659

#TimeUsernameProblemLanguageResultExecution timeMemory
142659nots0fastCalvinball championship (CEOI15_teams)C++17
100 / 100
681 ms864 KiB
#include <bits/stdc++.h> using namespace std; #define mp(a,b) make_pair(a,b) #define ff first #define setp setprecision(12)<<fixed #define ss second #define fori(v) for(int i=0; i<v; i++) #define forj(v) for(int j=0; j<v; j++) #define fork(v) for(int k=0; k<v; k++) #define forl(v) for(int l=0; l<v; l++) #define fort(v) for(int t=0; t<v; t++) #define forz(v) for(int z=0; z<v; z++) #define ll long long int #define double long double #define MAX (int)(pow(10,4)+ 10) #define pb(a) push_back(a) // #define cout out // #define cin in ll inf = pow(10,9); ll modulo = 1000007; double eps = 1e-10; ifstream in; ofstream out; void deal(){ ll n; cin>>n; vector<ll> Mx(n); vector<ll> arr(n); fori(n) cin>>arr[i]; Mx[0] = 0; for(ll i = 1; i<n; i++) Mx[i] = max(arr[i-1], Mx[i-1]); vector<ll> dp(n+1, 1); ll ans = 1; for(ll i = n-1; i>-1; i--){ ans+=dp[Mx[i]] * (arr[i]-1); ans%=modulo; vector<ll> dpn(i+1,0); for(ll j = 1; j<i+1; j++) dpn[j] = (dp[j+1] + j*dp[j]) % modulo; dp = dpn; } cout<<ans; } int main(){ cin.tie(0); ios_base::sync_with_stdio(0); deal(); }
#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...