結果
問題 | No.1043 直列大学 |
ユーザー | anagohirame |
提出日時 | 2020-05-01 22:12:07 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 363 ms / 2,000 ms |
コード長 | 644 bytes |
コンパイル時間 | 206 ms |
コンパイル使用メモリ | 82,100 KB |
実行使用メモリ | 117,152 KB |
最終ジャッジ日時 | 2024-12-22 19:31:37 |
合計ジャッジ時間 | 6,235 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
n, m = map(int, input().split()) vs = list(map(int, input().split())) rs = list(map(int, input().split())) a, b = map(int, input().split()) v_sum = [0 for _ in range(100001)] v_sum[0] = 1 r_sum = [0 for _ in range(100001)] r_sum[0] = 1 for v in vs: for i in range(100000, v-1, -1): v_sum[i] += v_sum[i-v] for r in rs: for i in range(100000, r-1, -1): r_sum[i] += r_sum[i-r] v_cum = [1 for _ in range(100001)] for i in range(1, 100001): v_cum[i] = v_cum[i-1] + v_sum[i] MOD = 10**9+7 ans = 0 for i in range(1, 100001): x, y = min(a*i-1, 100000), min(b*i, 100000) num = v_cum[y] - v_cum[x] ans += num * r_sum[i] ans %= MOD print(ans)