Submission #48121

#TimeUsernameProblemLanguageResultExecution timeMemory
48121ExtazyKangaroo (CEOI16_kangaroo)C++17
6 / 100
2 ms568 KiB
#include <bits/stdc++.h>
#define endl '\n'

using namespace std;

const int N = 20;

int n,cs,cf,fact[N],a[N],ans;

bool check() {
  for(int i=2;i<n;i++) {
    if(!((a[i-1]<a[i] && a[i+1]<a[i]) || (a[i-1]>a[i] && a[i+1]>a[i]))) return false;
  }
  return true;
}

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int i,j;

  scanf("%d %d %d", &n, &cs, &cf);

  fact[0]=1;
  for(i=1;i<=n-2;i++) {
    fact[i]=fact[i-1]*i;
  }

  for(i=1;i<=n;i++) {
    a[i]=i;
  }

  swap(a[1],a[cs]);
  swap(a[n],a[cf]);

  for(j=1;j<=fact[n-2];j++) {
    next_permutation(a+2,a+n);
    if(check()) ++ans;
  }

  printf("%d\n", ans);

  return 0;
}

Compilation message (stderr)

kangaroo.cpp: In function 'int main()':
kangaroo.cpp:22:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d %d", &n, &cs, &cf);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...