結果
問題 | No.2493 K-th in L2 with L1 |
ユーザー |
![]() |
提出日時 | 2023-10-07 16:19:06 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 103 ms / 2,000 ms |
コード長 | 1,842 bytes |
コンパイル時間 | 248 ms |
コンパイル使用メモリ | 82,288 KB |
実行使用メモリ | 76,716 KB |
最終ジャッジ日時 | 2024-07-26 17:50:54 |
合計ジャッジ時間 | 1,205 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 4 |
ソースコード
from collections import defaultdictimport bisect# ダブリング dp[i][j]:=jから2**i回遷移したときの到達点# https://atcoder.jp/contests/abc167/submissions/40815296# N,K=map(int,input().split())# A=list(map(int,input().split()))# dp=[[-1]*N for _ in range(60)]# for j in range(N):# dp[0][j]=A[j]-1# for i in range(1,60):# for j in range(N):# dp[i][j]=dp[i-1][dp[i-1][j]]# i=0# now=0# while(K>0):# if (K&1)==1:# now=dp[i][now]# i+=1# K>>=1# print(now+1)dxdy1 = ((0, 1), (0, -1), (1, 0), (-1, 0))dxdy2 = ((0, 1), (0, -1), (1, 0), (-1, 0), (1, 1), (-1, -1), (1, -1), (-1, 1))dxdy3 = ((0, 1), (1, 0))dxdy4 = ((1, 1), (1, -1), (-1, 1), (-1, -1))INF = float("inf")MOD = 998244353mod = 998244353# memo : len([a,b,...,z])==26Q = int(input())def count_lattice_points_in_circle(r, K):count = 0c2 = 0rr = int(r**0.5)for x in range(-K, K + 1):for y in range(-K, K + 1):if x + y != K:continuereturn count, c2for i in range(Q):D, K = map(int, input().split())ok = Falsekouho = defaultdict(int)dist = []view = defaultdict(int)for x in range(D + 1):y = D - xfor dx, dy in ((1, 1), (-1, 1), (1, -1), (-1, -1)):nx = x * dxny = y * dyif view[nx, ny] != 0:continueview[nx, ny] = 1kouho[nx, ny] = x**2 + y**2dist.append(x**2 + y**2)dist.sort()for key, val in kouho.items():point = bisect.bisect_left(dist, val)p2 = bisect.bisect_left(dist, val + 1)# print(i, key, point, p2)if point < K and p2 >= K:print("Yes")print(*key)ok = Truebreakif not ok:print("No")