func_code_string: #include <bits/stdc++.h>   template <typename T>   void read(T& val) {     std::string tmp = typeid(val).name();     if (strcmp(tmp.c_str(),  i ) == 0)       scanf( %d , &val);     else if (strcmp(tmp.c_str(),  x ) == 0)       scanf( %I64d , &val);     else if (strcmp(tmp.c_str(),  d ) == 0)       scanf( %lf , &val);     else if (tmp.length() > 2 && tmp.back() ==  c )       scanf( %s , val);     else if (strcmp(tmp.c_str(),  c ) == 0)       scanf( %c , &val);   }   template <typename T, typename... Targs>   void read(T& val, Targs&... Fargs) {     read(val);     read(Fargs...);   }   template <typename T>   void print(T val) {     std::string tmp = typeid(val).name();     if (strcmp(tmp.c_str(),  i ) == 0)       printf( %d , val);     else if (strcmp(tmp.c_str(),  x ) == 0)       printf( %I64d , val);     else if (strcmp(tmp.c_str(),  d ) == 0)       printf( %.15f , val);     else if (strcmp(tmp.c_str(),  c ) == 0)       printf( %c , val);     else if (tmp.length() > 2 && tmp.back() ==  c )       printf( %s , val);   }   template <typename T, typename... Targs>   void print(T val, Targs... Fargs) {     print(val);     print(Fargs...);   }   const double pi = acos(-1);   const int MOD = 1e9 + 7;   const int INF = 1e9 + 7;   const int MAXN = 1e6 + 5;   const double eps = 1e-9;   using namespace std;   int a = 1, b, c, n, x, y, z;   int main() {     read(n, x, y, c);     while (a < c) {       b++;       z = min(x - 1, b);       a += max(z - max((y + b - n), 0) + 1, 0) +            max(z - max((b - y + 1), 0) + 1, 0) - (z == b);       z = min(n - x, b);       a += max(z - max((y + b - n), 1) + 1, 0) +            max(z - max((b - y + 1), 1) + 1, 0) - (z == b);     }     print(b);     return 0;   }   