結果

問題 No.3102 floor sqrt xor
ユーザー ゼット
提出日時 2025-04-11 22:02:09
言語 PyPy3
(8.0.1 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 50 ms / 2,000 ms
+ 54µs
コード長 420 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 94 ms
コンパイル使用メモリ 64,272 KB
実行使用メモリ 59,048 KB
最終ジャッジ日時 2026-11-01 00:24:35
合計ジャッジ時間 3,452 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge7_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

Q=int(input())
from math import isqrt
for _ in range(Q):
  N=int(input())
  ans=0
  for k in range(59,-1,-1):
    z=ans^(isqrt(ans))
    if (z>>k)&1:
      a=1
    else:
      a=0
    if (N>>k)&1:
      b=1
    else:
      b=0
    if a!=b:
      ans+=2**k
  if ans^(isqrt(ans))==N:
    print(ans)
  elif (ans+1)^(isqrt(ans+1))==N:
    print(ans+1)
  elif (ans-1)^(isqrt(ans-1))==N:
    print(ans+1)
  else:
    print(-1)
0