#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int inf = INT_MAX;
long long int f2(long long int x, long long int y, long long int t) {
  if (t >= x + y - 2) return x * y;
  long long int ans = (t + 1) * (t + 2) / 2;
  if (t >= x) ans -= (t - x + 1) * (t - x + 2) / 2;
  if (t >= y) ans -= (t - y + 1) * (t - y + 2) / 2;
  return ans;
}
long long int func(long long int n, long long int x, long long int y,
                   long long int t) {
  long long int ans = f2(x, y, t) + f2(x, n - y + 1, t) + f2(n - x + 1, y, t) +
                      f2(n - x + 1, n - y + 1, t);
  ans -= 3;
  ans -= min(x - 1, t);
  ans -= min(n - x, t);
  ans -= min(y - 1, t);
  ans -= min(n - y, t);
  return ans;
}
int main() {
  long long int n, x, y, c;
  cin >> n >> x >> y >> c;
  if (1 >= c) {
    cout << 0 << "\n";
    return 0;
  }
  long long int low = 0, high = (1ll << 20);
  while (high - low > 1) {
    long long int mid = (high + low) / 2;
    long long int tmp = func(n, x, y, mid);
    if (tmp >= c)
      high = mid;
    else
      low = mid;
  }
  cout << high << "\n";
  return 0;
}
