結果
問題 |
No.990 N×Mマス計算(Kの倍数)
|
ユーザー |
|
提出日時 | 2020-04-15 16:09:49 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 582 ms / 2,000 ms |
コード長 | 1,394 bytes |
コンパイル時間 | 172 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 37,260 KB |
最終ジャッジ日時 | 2024-10-01 18:47:53 |
合計ジャッジ時間 | 4,369 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 19 |
ソースコード
MOD = 10 ** 9 + 7 INF = 10 ** 12 import sys sys.setrecursionlimit(1000000) dy = (-1,0,1,0) dx = (0,1,0,-1) from itertools import permutations from math import gcd def main(): n,m,k = map(int,input().split()) l = input().split() b = [int(l[i]) for i in range(1,m + 1)] a = [int(input()) for _ in range(n)] if l[0] == '+': ans = 0 b = [i%k for i in b] a = [i%k for i in a] dic = {} for num in b: if num in dic: dic[num] += 1 else: dic[num] = 1 for num in a: if num > 0: if k - num in dic: ans += dic[k - num] else: if 0 in dic: ans += dic[0] print(ans) else: dica = {} for num in a: g = gcd(num,k) if g in dica: dica[g] += 1 else: dica[g] = 1 dicb = {} for num in b: g = gcd(num,k) if g in dicb: dicb[g] += 1 else: dicb[g] = 1 ans = 0 for ka in dica: for kb in dicb: if (ka * kb % k) == 0: ans += dica[ka] * dicb[kb] print(ans) if __name__ =='__main__': main()