| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1354537 | uranhishig | Kangaroo (CEOI16_kangaroo) | C++20 | 0 ms | 344 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1e9 + 7;
signed main() {
int n, cs, cf;
cin >> n >> cs >> cf;
if(n <= 8){
vector<int> a(n);
for (int i = 0; i < n; i++) {
a[i] = i + 1;
}
int cnt = 0;
do{
if(a[0] == cs and a[n - 1] == cf){
bool ok = true;
for (int i = 1; i < n-1; i++) {
int pre = a[i - 1];
int cur = a[i];
int nxt = a[i + 1];
if(pre < cur and nxt >= cur) {
ok = false;
break;
}
if(pre >= cur and nxt <= cur){
ok = false;
break;
}
}
if(ok) cnt++;
}
}while(next_permutation(a.begin(), a.end()));
cout << cnt;
return 0;
}
int dp[n + 1][n + 1][2];
int last = -1;
dp[cs][cs][0] = 1;
dp[cs][cs][1] = 1;
for (int l = 1; l <= n; l++) {
for (int r = l; r <= n; r++) {
if(l >= 2) dp[l-1][r][1] += dp[l][r][0];
if(r <= n - 1) dp[l][r + 1][0] += dp[l][r][1];
}
}
cout << max(dp[1][n][0], dp[1][n][1]);
return 0;
}| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
