제출 #1142742

#제출 시각아이디문제언어결과실행 시간메모리
1142742mnbvcxz123Calvinball championship (CEOI15_teams)C++20
70 / 100
68 ms584 KiB
#include<bits/stdc++.h> using namespace std; using ll=long long; constexpr ll N=1e4+5; constexpr ll mod=1e6+7; ll dp[2][N]; ll v[N]; ll add(ll a, ll b){ a+=b; return a%mod; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll n; cin>>n; for(int i=1;i<=n;++i)cin>>v[i]; dp[0][0]=1; ll mx=0,ok=0; for(ll i=1;i<=n;++i){ for(ll j=2;j<=i;++j) dp[i&1][j]=(dp[i+1&1][j]*j+dp[i+1&1][j-1])%mod; if(v[i]!=1)ok=1; dp[i&1][0]=1; if(v[i]!=1) dp[i&1][mx]=add(dp[i&1][mx],(v[i]-1ll)*dp[i+1&1][0])%mod; if(ok)dp[i&1][1]=1ll; mx=max(mx,v[i]); } int ans=0; for(ll i=1;i<=n;++i) ans+=dp[n&1][i]; cout<<add(ans,1)<<'\n'; }
#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...