#include <bits/stdc++.h>
using namespace std;
const int oo = 0x3f3f3f3f;
const int MO = 1e9 + 7;
template <class T>
inline bool Chkmin(T &x, T y) {
  return x > y ? x = y, true : false;
}
template <class T>
inline bool Chkmax(T &x, T y) {
  return x < y ? x = y, true : false;
}
template <class T>
inline T read(T &x) {
  static int f;
  static char c;
  for (f = 1; !isdigit(c = getchar());)
    if (c == '-') f = -1;
  for (x = 0; isdigit(c); c = getchar()) x = x * 10 + c - 48;
  return x *= f;
}
template <class T>
inline void write(T x, char P = '\n') {
  static char s[20];
  static int top = 0;
  if (x < 0) x = -x, putchar('-');
  do {
    s[++top] = x % 10;
  } while (x /= 10);
  do {
    putchar(s[top] + 48);
  } while (--top);
  putchar(P);
}
inline void open() {
  freopen(".in", "r", stdin);
  freopen(".out", "w", stdout);
}
const int MAXN = 105;
int N;
int a[MAXN], mx, mn;
int main() {
  read(N);
  for (int i = 1; i <= N; ++i) {
    read(a[i]);
    if (a[i] == 1) mn = i;
    if (a[i] == N) mx = i;
  }
  if (mx > mn) swap(mx, mn);
  write(max(N - mx, mn - 1));
  return 0;
}
