結果
問題 |
No.2177 Recurring ab
|
ユーザー |
![]() |
提出日時 | 2022-11-18 19:23:25 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 38 ms / 2,000 ms |
コード長 | 603 bytes |
コンパイル時間 | 134 ms |
コンパイル使用メモリ | 81,868 KB |
実行使用メモリ | 54,332 KB |
最終ジャッジ日時 | 2024-09-20 00:31:32 |
合計ジャッジ時間 | 1,713 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
import sys, math from itertools import permutations input = sys.stdin.readline def ceil_sqrt(n): rn = math.sqrt(n) ok = max(0, int(rn - 2)) ng = int(rn + 2) while(ng - ok > 1): k = (ok + ng) >> 1 if(k * k <= n): ok = k else: ng = k return ok + (ok ** 2 != n) n = int(input()) def check(p, a, b): return (p ** 2 < n * (p * a + b) + 1) ans = 0 for a, b in permutations([*range(10)], 2): min_p = max(a, b) + 1 if not(check(min_p, a, b)): continue left = min_p * 2 right = n * a + ceil_sqrt((n * a) ** 2 + 4 * (n * b + 1)) ans += ((right - left) >> 1) + (right & 1) print(ans)