Submission #1294233

#TimeUsernameProblemLanguageResultExecution timeMemory
1294233vuqar_bazarov1Kangaroo (CEOI16_kangaroo)C++20
6 / 100
2095 ms572 KiB
#pragma GCC optimize("Ofast,unroll-loops,O3")
#include <bits/stdc++.h>

using namespace std;

#ifdef LOCAL
#include "algo/debug.h"
#else
#define debug(...) 73
#endif

using int64 = int64_t;
using ld = long double;
using uint64 = uint64_t;
using int128 = __int128_t;

#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()

const int md = 1e9 + 7;
const int64 inf = 1e18;

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int n, cs, cf;
  cin >> n >> cs >> cf;
  vector<int> a(n);
  for (int i = 0; i < n; i++) {
    a[i] = i + 1;
  }
  int cnt = 0;
  do {
    if (a[0] == cs && a.back() == cf) {
      bool can = true;
      for (int i = 1; i < n - 1; i++) {
        if (a[i + 1] > a[i] && a[i] > a[i - 1]) {
          can = false;
          break;
        }
      }
      for (int i = 1; i < n - 1; i++) {
        if (a[i + 1] < a[i] && a[i] < a[i - 1]) {
          can = false;
          break;
        }
      }
      cnt += int(can);
    }
  } while (next_permutation(all(a)));
  cout << cnt << '\n';
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...