結果
問題 |
No.989 N×Mマス計算(K以上)
|
ユーザー |
![]() |
提出日時 | 2025-06-29 20:47:26 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 156 ms / 2,000 ms |
コード長 | 2,071 bytes |
コンパイル時間 | 507 ms |
コンパイル使用メモリ | 82,812 KB |
実行使用メモリ | 87,408 KB |
最終ジャッジ日時 | 2025-06-29 20:47:29 |
合計ジャッジ時間 | 3,582 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
from bisect import bisect_left, bisect_right def ceildiv(a: int, b: int) -> int: return (a + b - 1) // b class Sorted: def __init__(self, xs: list): self.xs = sorted(xs) def __len__(self): return len(self.xs) def ilt(self, x): p = bisect_left(self.xs, x) if p == 0: return None return p - 1 def ile(self, x): p = bisect_right(self.xs, x) if p == 0: return None return p - 1 def igt(self, x): p = bisect_right(self.xs, x) if p == len(self.xs): return None return p def ige(self, x): p = bisect_left(self.xs, x) if p == len(self.xs): return None return p def lt(self, x, default=None): """Find the largest element < x, or default if it doesn't exist.""" p = self._lt(x) if p is None: return default return self.xs[p] def le(self, x, default=None): """Find the largest element <= x, or default if it doesn't exist.""" p = self._le(x) if p is None: return default return self.xs[p] def gt(self, x, default=None): """Find the smallest element > x, or default if it doesn't exist.""" p = self._gt(x) if p is None: return default return self.xs[p] def ge(self, x, default=None): """Find the smallest element >= x, or default if it doesn't exist.""" p = self._ge(x) if p is None: return default return self.xs[p] N, M, K = map(int, input().split()) s = input().split() op = s[0] B = [int(x) for x in s[1:]] A = [] for _ in range(N): A.append(int(input())) def calc_add(): res = 0 bb = Sorted(B) for a in sorted(A): p = bb.ige(K - a) if p is None: continue res += len(bb) - p return res def calc_mul(): res = 0 bb = Sorted(B) for a in sorted(A): p = bb.ige(ceildiv(K, a)) if p is None: continue res += len(bb) - p return res if op == '+': print(calc_add()) else: print(calc_mul())