제출 #1004459

#제출 시각아이디문제언어결과실행 시간메모리
1004459messiuuuuuŽarulje (COI15_zarulje)C++14
22 / 100
46 ms29008 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 2e3 + 5; const int MOD = 1e9 + 7; int n, k; int dp[MAXN][MAXN], a[MAXN]; int main() { cin >> n >> k; for (int i = 1; i <= n; i++) cin >> a[i]; a[0] = a[n + 1] = -2e9; dp[1][n] = 1; for (int le = n; le >= 1; le--) { for (int l = 1; l + le - 1 <= n; l++) { int r = l + le - 1; if (a[l - 1] > a[r + 1]) { dp[l][r] += dp[l - 1][r]; dp[l][r] %= MOD; } if (a[l - 1] < a[r + 1]) { dp[l][r] += dp[l][r + 1]; dp[l][r] %= MOD; } if (a[l - 1] == a[r + 1]) { dp[l][r] += dp[l - 1][r]; dp[l][r] %= MOD; dp[l][r] += dp[l][r + 1]; dp[l][r] %= MOD; } } } while (k-- > 0) { int p; cin >> p; cout << dp[p][p] << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...