/* -*- coding: utf-8 -*- * * 3680.cc: No.3680 繧サ繧ー繝。繝ウ繝磯・繧・- yukicoder */ #include #include using namespace std; /* constant */ /* typedef */ using ll = long long; /* global variables */ /* subroutines */ /* main */ int main() { int tn; scanf("%d", &tn); while (tn--) { ll sx, sy, tx, ty; scanf("%lld%lld%lld%lld", &sx, &sy, &tx, &ty); ll ux = (sy < 64) ? (sx >> sy) : 0, uy = sy; ll vx = (ty < 64) ? (tx >> ty) : 0, vy = ty; ll d = 0; if (uy > vy) d = uy - vy, vx >>= d, vy = uy; if (uy < vy) d = vy - uy, ux >>= d, uy = vy; ll mind = d + abs(ux - vx); while (ux != vx) { d += 2; ux >>= 1, vx >>= 1; mind = min(mind, d + abs(ux - vx)); } printf("%lld\n", mind); } return 0; }