結果

問題 No.3680 セグメント釣り
コンテスト
ユーザー dokukuma
提出日時 2026-09-05 14:07:04
言語 PyPy3
(7.3.23)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,171 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 239 ms
コンパイル使用メモリ 96,200 KB
実行使用メモリ 100,236 KB
最終ジャッジ日時 2026-09-05 14:08:02
合計ジャッジ時間 9,485 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 1 WA * 6 RE * 6
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys, time, random, heapq, math, itertools, copy
from collections import deque, Counter, defaultdict
#from sortedcontainers import SortedSet, SortedList
from bisect import bisect, bisect_left, bisect_right
import heapq as hq
from functools import cache, cmp_to_key
def debug(*x):print('debug:',*x, file=sys.stderr)
sys.setrecursionlimit(300000)
input = lambda: sys.stdin.readline().rstrip()
ii = lambda: int(input())
mi = lambda: map(int, input().split())
li = lambda: list(mi())
inf = 2 ** 61 - 1
mod = 998244353
dir = [(0, 1), (0, -1), (1, 0), (-1, 0)]

T = ii()
for _ in range(T):
    Sx, Sy, Tx, Ty = mi()
    if Sx == Sy:
        print(abs(Sy - Ty))
        continue
    if Sx > Tx:
        Sx, Sy, Tx, Ty = Tx, Ty, Sx, Sy

    ans = 0
    if Sy < Ty:
        ans += Ty - Sy
        Sy = Ty
    elif Ty < Sy:
        ans += Sy - Ty
        Ty = Sy

    left_s, right_s = (Sx // pow(2, Sy))*pow(2, Sy), (Sx // pow(2, Sy))*pow(2,Sy) + pow(2, Sy)

    left_t, right_t = (Tx // pow(2, Ty))*pow(2, Ty), (Tx // pow(2, Ty))*pow(2,Ty) + pow(2, Ty)
    debug(left_s, right_s)
    debug(left_t, right_t)
    ans += (left_t - left_s) // pow(2, Sy)

    print(ans)


    
0