Submission #113016

# Submission time Handle Problem Language Result Execution time Memory
113016 2019-05-23T06:05:36 Z Mahdi_Jfri Calvinball championship (CEOI15_teams) C++14
100 / 100
200 ms 540 KB
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back

const int maxn = 1e4 + 20;
const int mod = 1e6 + 7;

int dp[2][maxn] , a[maxn] , mx[maxn];

inline void mkay(int &a)
{
	if(a >= mod)
		a -= mod;
}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int n;
	cin >> n;

	for(int i = 1; i <= n; i++)
		cin >> a[i] , mx[i] = max(mx[i - 1] , a[i]);

	for(int i = 0; i <= n; i++)
		dp[0][i] = 1;

	int res = 1;
	for(int i = 0; i < n; i++)
	{
		int x = (i&1);

		if(i)
			for(int j = 0; j <= n; j++)
				dp[x][j] = (1LL * dp[x ^ 1][j] * j + dp[x ^ 1][j + 1]) % mod;

		int tmp = 1LL * (a[n - i] - 1) * dp[x][mx[n - i - 1]] % mod;
		mkay(res += tmp);
	}

	cout << res << endl;
}


# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 3 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 4 ms 412 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 200 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 47 ms 504 KB Output is correct
2 Correct 47 ms 472 KB Output is correct
3 Correct 49 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 180 ms 532 KB Output is correct
2 Correct 181 ms 536 KB Output is correct
3 Correct 180 ms 540 KB Output is correct