結果
| 問題 |
No.1201 お菓子配り-4
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-03-11 15:16:11 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 998 bytes |
| コンパイル時間 | 375 ms |
| コンパイル使用メモリ | 81,536 KB |
| 実行使用メモリ | 151,900 KB |
| 最終ジャッジ日時 | 2024-09-18 06:26:58 |
| 合計ジャッジ時間 | 50,338 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 31 TLE * 5 |
ソースコード
from math import ceil
MOD = int(1e9 + 7)
def floor_sum_of_linear(L: int, R: int, a: int, b: int, div: int) -> int:
"""
```
sum((x * a + b) // div for x in range(L, R))
```
"""
if L >= R:
return 0
res = 0
b += L * a
n = R - L
if b < 0:
k = ceil(-b / div)
b += k * div
res -= n * k
while n:
q, a = a // div, a % div
res += n * (n - 1) // 2 * q
res %= MOD
if b >= div:
q, b = b // div, b % div
res += n * q
res %= MOD
n, b = (a * n + b) // div, (a * n + b) % div
a, div = div, a
return res
if __name__ == "__main__":
n = int(input())
m = int(input())
nums1 = list(map(int, input().split()))
nums2 = list(map(int, input().split()))
res = 0
for a in nums1:
for b in nums2:
res += floor_sum_of_linear(1, b + 1, a, 0, b)
res %= MOD
res *= 2
res %= MOD
print(res)