結果
問題 |
No.1383 Numbers of Product
|
ユーザー |
![]() |
提出日時 | 2025-03-31 17:45:06 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,832 bytes |
コンパイル時間 | 238 ms |
コンパイル使用メモリ | 82,772 KB |
実行使用メモリ | 504,060 KB |
最終ジャッジ日時 | 2025-03-31 17:46:01 |
合計ジャッジ時間 | 4,313 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 5 TLE * 1 -- * 45 |
ソースコード
import sys import math def main(): N, K, M = map(int, sys.stdin.readline().split()) answer = 0 count = dict() s = 2 while True: min_prod = 1 for i in range(s): term = 1 + i * K if term > N: min_prod = N + 1 break if min_prod > N // term: min_prod = N + 1 break min_prod *= term if min_prod > N: break if min_prod > N: break low = 1 high = N best_A = 0 while low <= high: mid = (low + high) // 2 product = 1 valid = True for i in range(s): term = mid + i * K if term > N: valid = False break if product > N // term: valid = False break product *= term if product > N: valid = False break if valid: best_A = mid low = mid + 1 else: high = mid - 1 if best_A == 0: s += 1 continue for A in range(1, best_A + 1): product = 1 for i in range(s): term = A + i * K product *= term if product > N: product = None break if product is not None and product <= N: if product in count: count[product] += 1 else: count[product] = 1 s += 1 answer = sum(1 for v in count.values() if v == M) print(answer) if __name__ == '__main__': main()