結果

問題 No.990 N×Mマス計算(Kの倍数)
ユーザー siman
提出日時 2020-02-15 03:49:55
言語 Ruby
(2.7.0p0)
結果
WA   .
実行時間 -
コード長 640 Byte
コンパイル時間 144 ms
使用メモリ 27,000 KB
最終ジャッジ日時 2020-02-15 03:49:58

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
1_sample1.txt AC 8 ms
11,420 KB
2_sample2.txt AC 12 ms
11,428 KB
3.txt AC 12 ms
11,360 KB
4.txt AC 12 ms
11,500 KB
5.txt AC 8 ms
11,480 KB
6.txt AC 12 ms
11,496 KB
7.txt AC 12 ms
11,464 KB
8.txt AC 8 ms
11,392 KB
9.txt AC 12 ms
11,424 KB
10.txt AC 12 ms
11,396 KB
11.txt AC 116 ms
20,252 KB
12.txt AC 120 ms
20,932 KB
13.txt AC 348 ms
26,940 KB
14.txt AC 84 ms
17,332 KB
15.txt WA -
16.txt WA -
17.txt AC 132 ms
19,304 KB
18.txt WA -
19.txt AC 344 ms
27,000 KB
20.txt AC 136 ms
19,212 KB
テストケース一括ダウンロード
コンパイルメッセージ
Syntax OK

ソースコード

diff #
class Integer
  def mod_inverse(mod)
    self.pow(mod - 2, mod)
  end
end

N, M, K = gets.split.map(&:to_i)
op, *B = gets.chomp.split
B.map!(&:to_i)
A = N.times.map { gets.to_i }
ans = 0
gcd_counter_a = Hash.new(0)
gcd_counter_b = Hash.new(0)
mod_counter = Hash.new(0)

B.each do |b|
  mod_counter[b % K] += 1
  gcd_counter_b[b.gcd(K)] += 1
end

A.each do |a|
  gcd_counter_a[a.gcd(K)] += 1
end

if op == '+'
  A.each do |a|
    if op == '+'
      ans += mod_counter[K - a % K]
    end
  end
else
  gcd_counter_a.each do |a, m|
    gcd_counter_b.each do |b, n|
      next if (a * b) % K != 0

      ans += m * n
    end
  end
end

puts ans
0