結果
問題 |
No.1036 Make One With GCD 2
|
ユーザー |
|
提出日時 | 2020-04-24 23:00:00 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 646 bytes |
コンパイル時間 | 172 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 197,480 KB |
最終ジャッジ日時 | 2024-11-07 03:03:19 |
合計ジャッジ時間 | 33,822 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 34 TLE * 1 -- * 6 |
ソースコード
INF = 10 ** 9 MOD = 10 **9 + 7 import sys sys.setrecursionlimit(100000000) dy = (-1,0,1,0) dx = (0,1,0,-1) from math import gcd from collections import defaultdict from copy import deepcopy def main(): n = int(input()) a = list(map(int,input().split())) if a[0] == 1: ans = 1 else: ans = 0 dp1 = defaultdict(int) dp2 = defaultdict(int) dp1[a[0]] = 1 for i in range(1,n): dp2.clear() for k in dp1: g = gcd(k,a[i]) dp2[g] += dp1[k] dp2[a[i]] += 1 dp1 = deepcopy(dp2) ans += dp1[1] print(ans) if __name__=='__main__': main()