제출 #1228590

#제출 시각아이디문제언어결과실행 시간메모리
1228590kaiboyCalvinball championship (CEOI15_teams)C++20
100 / 100
488 ms596 KiB
#include <algorithm> #include <iostream> using namespace std; const int N = 10000; const int MD = 1000007; int aa[N], pp[N], ch[N], xx[N]; int main() { ios_base::sync_with_stdio(false), cin.tie(NULL); int n; cin >> n; for (int i = 0; i < n; i++) cin >> aa[i], aa[i]--; for (int p = 0, i = 0; i < n; i++) pp[i] = p = max(p, aa[i]); int ans = ch[0] = xx[0] = 1; for (int i = n - 1; i; i--) { long long p = aa[i]; for (int m = 0; m < n - i; m++, p = p * (pp[i - 1] + 1) % MD) ans = (ans + ch[m] * p * xx[n - i - 1 - m]) % MD; for (int m = 0; m < n - i; m++) xx[n - i] = (xx[n - i] + (long long) ch[m] * xx[n - i - 1 - m]) % MD; for (int m = n - i; m; m--) ch[m] = (ch[m] + ch[m - 1]) % MD; } cout << ans << '\n'; 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...