답안 #81792

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
81792 2018-10-26T16:25:28 Z Just_Solve_The_Problem Calvinball championship (CEOI15_teams) C++11
20 / 100
1000 ms 876 KB
#include <bits/stdc++.h>

using namespace std;

#define int long long

const int N = (int)1e4 + 7;

int mod = (int)1e9 + 7;
int a[N];
int dp[2][N];

int add(int a, int b) {
	return (a + b) % mod;
}

int mult(long long a, long long b) {
	return (a * b) % mod;
}

int n, mx;
int asd[N];

main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		asd[i] = asd[i - 1];
		if (a[i] > mx) {
			mx = a[i];
			asd[i]++;
		}
	}
	int ans = 1;
	for (int i = 1; i <= n; i++) dp[n & 1][i] = 1;
	ans = add(ans, mult(dp[n & 1][asd[n - 1]], a[n] - 1));
	for (int i = n - 1; i >= 1; i--) {
		for (int j = 0; j <= i; j++) {
			dp[i & 1][j] = 0;
			dp[i & 1][j] = add(dp[i & 1][j], dp[i & 1 ^ 1][j + 1]);
			dp[i & 1][j] = add(dp[i & 1][j], mult(dp[i & 1 ^ 1][j], j));
		}
		ans = add(ans, mult(dp[i & 1][asd[i - 1]], a[i] - 1));
	}
	cout << ans;
}

Compilation message

teams.cpp:24:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
teams.cpp: In function 'int main()':
teams.cpp:40:42: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
    dp[i & 1][j] = add(dp[i & 1][j], dp[i & 1 ^ 1][j + 1]);
                                        ~~^~~
teams.cpp:41:47: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
    dp[i & 1][j] = add(dp[i & 1][j], mult(dp[i & 1 ^ 1][j], j));
                                             ~~^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 256 KB Output is correct
2 Correct 2 ms 504 KB Output is correct
3 Correct 2 ms 504 KB Output is correct
4 Correct 2 ms 504 KB Output is correct
5 Correct 2 ms 504 KB Output is correct
6 Correct 2 ms 504 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 516 KB Output is correct
2 Correct 2 ms 644 KB Output is correct
3 Correct 2 ms 644 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 644 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 644 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 644 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 7 ms 644 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 26 ms 644 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1073 ms 876 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Incorrect 509 ms 876 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1081 ms 876 KB Time limit exceeded
2 Halted 0 ms 0 KB -