結果
問題 | No.944 煎っぞ! |
ユーザー |
|
提出日時 | 2024-09-16 00:05:08 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 91 ms / 3,000 ms |
コード長 | 1,009 bytes |
コンパイル時間 | 287 ms |
コンパイル使用メモリ | 82,136 KB |
実行使用メモリ | 118,272 KB |
最終ジャッジ日時 | 2024-09-16 00:05:13 |
合計ジャッジ時間 | 4,120 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 35 |
ソースコード
## https://yukicoder.me/problems/no/944 import math def main(): N = int(input()) A = list(map(int, input().split())) # 解答候補を出す sum_a = sum(A) max_a = max(A) sqrt_sum_a = int(math.sqrt(sum_a)) candidates = [] for p in range(1, sqrt_sum_a + 1): if sum_a % p == 0: q = sum_a // p if q >= max_a: candidates.append(p) if q != p and p >= max_a: candidates.append(q) candidates.sort() # 累積和と array = [-1] * (sum_a + 1) cumsum_a = 0 for i in range(N): cumsum_a += A[i] array[cumsum_a] = i answer = 1 for p in candidates: if p <= 1: continue q = sum_a // p is_ok = True for j in range(p): if array[(j + 1) * q] == -1: is_ok = False break if is_ok: answer = p print(answer) if __name__ == "__main__": main()