結果

問題 No.990 N×Mマス計算(Kの倍数)
ユーザー kota_rits
提出日時 2020-02-15 03:52:36
言語 Python3
(3.8.1 + numpy 1.14.5 + scipy 1.1.0)
結果
AC  
実行時間 640 ms
コード長 961 Byte
コンパイル時間 520 ms
使用メモリ 23,108 KB
最終ジャッジ日時 2020-02-15 03:52:41

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
1_sample1.txt AC 16 ms
8,244 KB
2_sample2.txt AC 20 ms
8,140 KB
3.txt AC 16 ms
8,088 KB
4.txt AC 20 ms
8,220 KB
5.txt AC 16 ms
8,072 KB
6.txt AC 16 ms
8,076 KB
7.txt AC 20 ms
8,044 KB
8.txt AC 24 ms
8,124 KB
9.txt AC 20 ms
8,136 KB
10.txt AC 16 ms
8,080 KB
11.txt AC 108 ms
19,060 KB
12.txt AC 144 ms
17,872 KB
13.txt AC 628 ms
23,108 KB
14.txt AC 100 ms
15,156 KB
15.txt AC 160 ms
17,132 KB
16.txt AC 104 ms
13,168 KB
17.txt AC 132 ms
18,684 KB
18.txt AC 76 ms
12,280 KB
19.txt AC 640 ms
23,100 KB
20.txt AC 200 ms
15,580 KB
テストケース一括ダウンロード

ソースコード

diff #
from sys import stdin
from math import gcd
n,m,k = map(int,stdin.readline().rstrip().split())
li = list(map(str,stdin.readline().rstrip().split()))
op = li[0]
b = [int(li[i]) for i in range(1,m+1)]
a = [int(stdin.readline().rstrip()) for _ in range(n)]
point = 0
if op == "+":
    dic = {}
    for B in b:
        if B%k in dic:
            dic[B%k] += 1
        else:
            dic[B%k] = 1
    for A in a:
        if -A%k in dic:
            point += dic[-A%k]
elif op == "*":
    dic_A = {};dic_B = {}
    for B in b:
        gcd_B = gcd(B,k)
        if gcd_B in dic_B:
            dic_B[gcd_B] += 1
        else:
            dic_B[gcd_B] = 1
    for A in a:
        gcd_A = gcd(A,k)
        if gcd_A in dic_A:
            dic_A[gcd_A] += 1
        else:
            dic_A[gcd_A] = 1
    for A_key,A_value in dic_A.items():
        for B_key,B_value in dic_B.items():
            if A_key*B_key%k == 0:
                point += A_value*B_value
print(point)
0