#if __has_include() #include using namespace atcoder; #else #include #if __has_include() #include using namespace atcoder; #endif #endif using namespace std; #define int long long #define all(x) (x).begin(), (x).end() #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rrep(i, n) for(int i = (int)((n) - 1); i >= 0; i--) template bool chmax(T &a,const T &b){if(a bool chmin(T &a,const T &b){if(a>b){a=b;return true;}return false;} // using mint = modint; void solve(){ int sx, sy, tx, ty; cin >> sx >> sy >> tx >> ty; // 0回以上上に行く、0回以上左右に行く、0回以上下に行く、の順 // 上に行く回数はmax(0, sy-sx)以上 // (x, y)が左から何マス目なのかを返す関数が欲しい auto index = [](int x, int y){ return y >= 60 ? 0 : x / (1ll << y); }; int ans = 1ll << 60; for(int up = max(0ll, ty - sy);; up++){ chmin(ans, up + (sy + up - ty) + abs(index(sx, sy + up) - index(tx, sy + up))); if(index(sx, sy + up) == index(tx, sy + up)) break; } println("{}", ans); } signed main(){ int t; cin >> t; while(t--) solve(); } /* 上に何回行くかを全探索できそう */