Submission #93588

#TimeUsernameProblemLanguageResultExecution timeMemory
93588vamaddurCalvinball championship (CEOI15_teams)C++14
100 / 100
766 ms768 KiB
#define __USE_MINGW_ANSI_STDIO 0 #include <iostream> #include <iomanip> #include <stdio.h> #include <stdlib.h> #include <vector> #include <algorithm> #include <queue> #include <map> #include <unordered_map> #include <set> #include <unordered_set> #include <stack> #include <deque> #include <string.h> #include <sstream> #include <bitset> #include <math.h> #include <assert.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; template <class T> using ordered_set = __gnu_pbds::tree<T, __gnu_pbds::null_type, less<T>, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update>; template <class T> using ordered_multiset = __gnu_pbds::tree<T, __gnu_pbds::null_type, less_equal<T>, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update>; #define PI atan2(0, -1) #define epsilon 1e-9 #define INF 5000000000000000000 #define MOD 1000000007 #define mp make_pair #define pb push_back #define f first #define s second #define lb lower_bound #define ub upper_bound int N, arr [10010], maxi [10010]; long long M = 1000007, dp [2][10010], saves [10010], ret = 1; int main(){ //freopen("sort.in", "r", stdin); freopen("sort.out", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout << fixed << setprecision(10); cin >> N; fill(dp[0], dp[0]+N+1, 1); saves[0] = 1; for(int i = 0; i < N; i++){ cin >> arr[i]; maxi[i+1] = max(maxi[i], arr[i]); } for(int i = 1; i < N; i++){ int curr = i&1, prevy = curr^1; for(int j = 0; j <= min(N, maxi[N-1-i]+N-i); j++) dp[curr][j] = (j*dp[prevy][j]+dp[prevy][j+1])%M; saves[i] = dp[curr][maxi[N-1-i]]; } for(int i = 0; i < N; i++) ret = (ret+(arr[i]-1)*saves[N-1-i])%M; cout << ret << '\n'; return 0; } /****************************** Kateba ii dake no hanashi darou Success is only a victory away - No Game No Life Opening ******************************/
#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...