結果
問題 |
No.1632 Sorting Integers (GCD of M)
|
ユーザー |
![]() |
提出日時 | 2025-06-12 15:44:56 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,507 bytes |
コンパイル時間 | 179 ms |
コンパイル使用メモリ | 82,392 KB |
実行使用メモリ | 59,764 KB |
最終ジャッジ日時 | 2025-06-12 15:45:01 |
合計ジャッジ時間 | 4,767 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | WA * 59 |
ソースコード
import sys import math def readints(): return list(map(int, sys.stdin.readline().split())) def factorize(n): factors = {} while n % 2 == 0: factors[2] = factors.get(2, 0) + 1 n = n // 2 i = 3 max_factor = math.isqrt(n) + 1 while i <= max_factor and n > 1: while n % i == 0: factors[i] = factors.get(i, 0) + 1 n = n // i max_factor = math.isqrt(n) + 1 i += 2 if n > 1: factors[n] = 1 return factors def main(): MOD = 10**9 + 7 N = int(sys.stdin.readline()) c = list(map(int, sys.stdin.readline().split())) S = 0 for i in range(9): S += (i+1) * c[i] if S == 0: print(0) return factors = factorize(S) d = 1 # Check for 2 all_even = True for i in range(9): digit = i + 1 if digit % 2 != 0 and c[i] > 0: all_even = False break if 2 in factors and all_even: d = (d * pow(2, factors[2], MOD)) % MOD # Check for 5 all_five = True for i in range(9): digit = i + 1 if digit != 5 and c[i] > 0: all_five = False break if 5 in factors and all_five: d = (d * pow(5, factors[5], MOD)) % MOD # Check for other primes for p in factors: if p == 2 or p == 5: continue d = (d * pow(p, factors[p], MOD)) % MOD print(d % MOD) if __name__ == '__main__': main()