結果
問題 |
No.2207 pCr検査
|
ユーザー |
![]() |
提出日時 | 2025-03-31 17:56:23 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,562 bytes |
コンパイル時間 | 274 ms |
コンパイル使用メモリ | 82,836 KB |
実行使用メモリ | 340,416 KB |
最終ジャッジ日時 | 2025-03-31 17:57:44 |
合計ジャッジ時間 | 6,146 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | TLE * 1 -- * 29 |
ソースコード
def factorize(n): factors = {} while n % 2 == 0: factors[2] = factors.get(2, 0) + 1 n = n // 2 i = 3 while i * i <= n: while n % i == 0: factors[i] = factors.get(i, 0) + 1 n = n // i i += 2 if n > 1: factors[n] = 1 return factors def main(): import sys input = sys.stdin.read().split() idx = 0 k = int(input[idx]) idx +=1 original_factors = {} primes_list = [] for _ in range(k): p = int(input[idx]) e = int(input[idx+1]) original_factors[p] = e primes_list.append(p) idx +=2 candidates = [p for p in primes_list if original_factors[p] == 1] for p_prime in candidates: if p_prime == 2: continue m = (p_prime - 1) // 2 m_factors = factorize(m) remaining_factors = original_factors.copy() del remaining_factors[p_prime] remaining_keys = set(remaining_factors.keys()) m_keys = set(m_factors.keys()) if remaining_keys != m_keys: continue match = True for key in remaining_keys: if remaining_factors.get(key, 0) != m_factors.get(key, 0): match = False break if not match: continue print(p_prime, 2) return if k == 1 and original_factors[primes_list[0]] == 1: print(primes_list[0], 1) return print(-1, -1) if __name__ == "__main__": main()