結果
問題 |
No.2198 Concon Substrings (COuNt-CONstruct Version)
|
ユーザー |
![]() |
提出日時 | 2025-03-31 17:53:11 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,076 bytes |
コンパイル時間 | 237 ms |
コンパイル使用メモリ | 82,372 KB |
実行使用メモリ | 68,848 KB |
最終ジャッジ日時 | 2025-03-31 17:54:30 |
合計ジャッジ時間 | 14,871 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 53 RE * 51 |
ソースコード
import math def find_k(M): target = 6 * M low = 1 high = 2 * 10**4 # since k*3 <= 60000 => k <= 20000 while low <= high: mid = (low + high) // 2 product = mid * (mid + 1) * (mid + 2) if product == target: return mid elif product < target: low = mid + 1 else: high = mid - 1 return None def find_abc(M): cube_root = int(M ** (1/3)) + 1 max_a = min(cube_root, 60000) for a in range(max_a, 0, -1): if M % a != 0: continue rem = M // a sqrt_rem = int(math.isqrt(rem)) + 1 for b in range(min(sqrt_rem, 60000 - a), 0, -1): if rem % b == 0: c = rem // b if a + b + c <= 60000: return (a, b, c) return None # Should not reach per problem statement M = int(input()) if M == 0: print("kudamakitsukasa") else: k = find_k(M) if k is not None: print("con" * k) else: a, b, c = find_abc(M) print('c' * a + 'o' * b + 'n' * c)