제출 #569949

#제출 시각아이디문제언어결과실행 시간메모리
569949600MihneaCalvinball championship (CEOI15_teams)C++17
10 / 100
437 ms420 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; const int M = 1000007; int add(int a, int b) { a += b; if (a >= M) return a - M; if (a < 0) return a + M; return a; } int mul(int a, int b) { return a * (ll) b % M; } void addup(int &a, int b) { a = add(a, b); } void mulup(int &a, int b) { a = mul(a, b); } const int N = 10000 + 7; int n, a[N], mx[N], ways[N]; signed main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; mx[i] = max(mx[i - 1], a[i]); ways[i] = 1; } int sol = 1; for (int i = n; i >= 1; i--) { addup(sol, mul(a[i] - 1, ways[mx[i - 1]])); for (int j = 1; j <= n - i + 1; j++) { ways[j] = add(mul(j, ways[j]), ways[j + 1]); } } cout << sol << "\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...