Submission #527311

#TimeUsernameProblemLanguageResultExecution timeMemory
527311beepbeepsheepCalvinball championship (CEOI15_teams)C++17
70 / 100
1096 ms65520 KiB
#include <bits/stdc++.h> using namespace std; #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #define ll long long #define ii pair<ll,ll> #define endl '\n' const ll inf=1e15; const ll mod=1e6+7; map<ii,int> dp; ll solve(ll digit, ll rem){ if (rem==0) return 1; if (dp.find(make_pair(digit,rem))!=dp.end()) return dp[{digit,rem}]; ll ans=0; ans=(solve(digit,rem-1)*digit)%mod+solve(digit+1,rem-1); return dp[{digit,rem}]=ans%mod; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); ll n,ele,ans=0; cin>>n; ll ele2=0,temp; for (int i=1;i<=n;i++){ cin>>ele; for (int j=1;j<ele;j++){ temp=max<ll>(j,ele2); ans+=solve(temp,n-i); ans%=mod; } ele2=max(ele,ele2); } cout<<(ans+1)%mod; 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...