제출 #527127

#제출 시각아이디문제언어결과실행 시간메모리
527127hmm789Calvinball championship (CEOI15_teams)C++14
70 / 100
38 ms65540 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	#define int long long
	#define MOD 1000007
	int n, ans = 0, mx = 0;
	cin >> n;
	int a[n];
	for(int i = 0; i < n; i++) cin >> a[i];
	int dp[n][n+1], npow = 1;
	for(int i = 0; i < n; i++) {
		dp[i][n] = npow;
		npow *= n;
		npow %= MOD;
	}
	for(int i = 0; i < n; i++) {
		for(int j = n-1; j >= 0; j--) {
			if(i == 0) dp[i][j] = 1;
			else dp[i][j] = j*dp[i-1][j] + dp[i-1][j+1];
			dp[i][j] %= MOD;
		}
	}
	for(int i = 0; i < n; i++) {
		ans += (a[i]-1)*dp[n-i-1][mx];
		mx = max(mx, a[i]);
		ans %= MOD;
	}
	cout << (ans+1)%MOD;
}
#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...