結果
問題 | No.1043 直列大学 |
ユーザー | maspy |
提出日時 | 2020-05-01 22:06:09 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 796 ms / 2,000 ms |
コード長 | 702 bytes |
コンパイル時間 | 310 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 49,356 KB |
最終ジャッジ日時 | 2024-12-22 19:29:46 |
合計ジャッジ時間 | 23,383 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
import sys import numpy as np read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines MOD = 10**9 + 7 U = 10**5 N, M = map(int, readline().split()) V = np.array(readline().split(), np.int64) R = np.array(readline().split(), np.int64) A, B = map(int, read().split()) def compute_sums(A): dp = np.zeros(U + 1, np.int64) dp[0] = 1 for x in A: dp[x:] += dp[:-x] dp %= MOD dp[0] = 0 return dp V = compute_sums(V) R = compute_sums(R) Vcum = np.cumsum(V) % MOD i = np.arange(U + 1, dtype=np.int64) ind1 = np.minimum(U, i * B) ind2 = np.minimum(U, i * A - 1) x = (Vcum[ind1] - Vcum[ind2]) * R % MOD print(x.sum() % MOD)