結果
問題 | No.990 N×Mマス計算(Kの倍数) |
ユーザー |
|
提出日時 | 2022-08-17 11:39:18 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,043 bytes |
コンパイル時間 | 239 ms |
コンパイル使用メモリ | 82,396 KB |
実行使用メモリ | 102,316 KB |
最終ジャッジ日時 | 2024-10-04 11:33:25 |
合計ジャッジ時間 | 4,964 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 WA * 1 |
other | AC * 7 WA * 10 TLE * 2 |
ソースコード
def make_divisors(n):divisors = []for i in range(1, int(n**0.5)+1):if n % i == 0:divisors.append(i)if i != n // i:divisors.append(n//i)divisors.sort()return divisorsimport mathn,m,k = map(int,input().split())opb = input().split()op = opb[0]b = []for i in range(1,m+1):b.append(int(opb[i]))a = [int(input()) for i in range(n)]ans = 0if op == "+":bmod = {}#[0]*(k)for i in range(m):tmp = b[i]%k#print(bmod,tmp)if tmp in bmod:bmod[tmp] += 1else:bmod[tmp] = 1#print(bmod)exit()for i in range(n):tmp = k-(a[i]%k)if tmp in bmod:ans += bmod[tmp]print(ans)else:div = make_divisors(k)bdiv = {}for i in div:tmp = 0for j in range(m):if b[j]%i == 0:tmp += 1bdiv[i] = tmpfor i in range(n):tmp = math.gcd(a[i],k)ans += bdiv[k//tmp]print(ans)