結果
問題 | No.2208 Linear Function |
ユーザー |
![]() |
提出日時 | 2023-02-23 15:28:56 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 49 ms / 2,000 ms |
コード長 | 3,672 bytes |
コンパイル時間 | 333 ms |
コンパイル使用メモリ | 13,312 KB |
実行使用メモリ | 12,544 KB |
最終ジャッジ日時 | 2024-07-23 10:58:24 |
合計ジャッジ時間 | 937 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 3 |
ソースコード
from __future__ import annotationsimport arrayimport bisectimport fractionsimport heapqimport itertoolsimport mathimport randomimport reimport stringimport sysimport timefrom collections import defaultdict, dequefrom functools import lru_cachesys.setrecursionlimit(10**6)INF = 10**20MOD = 10**9 + 7def read_int_list():return list(map(int, input().split()))def read_int():return int(input())def read_str_list():return list(input().split())def read_str():return input()def is_prime(n: int) -> bool:if n < 2:return Falsei = 2ok = Truewhile i * i <= n:if n % i == 0:ok = Falsei += 1return okdef eratosthenes(n: int) -> list[bool]:is_prime_list = ([False, True] * (n // 2 + 1))[0 : n + 1]is_prime_list[1] = Falseis_prime_list[2] = Truefor i in range(3, n + 1, 2):if not (is_prime_list[i]):continueif i * i > n:breakfor k in range(i * i, n + 1, i):is_prime_list[k] = Falsereturn is_prime_listdef legendre(n: int, p: int) -> int:cnt = 0pp = pwhile pp <= n:cnt += n // pppp *= preturn cntdef prime_factorize(n: int) -> defaultdict[int, int]:nn = ni = 2d: defaultdict[int, int] = defaultdict(int)while i * i <= n:while nn % i == 0:d[i] += 1nn //= ii += 1if nn != 1:d[nn] += 1return ddef make_divisors(n: int) -> list[int]:i = 1ret = []while i * i <= n:if n % i == 0:ret.append(i)if i != n // i:ret.append(n // i)i += 1ret.sort()return retdef gcd(a: int, b: int) -> int:if a == 0:return belse:return gcd(b % a, a)def lcm(a: int, b: int) -> int:return a * b // gcd(a, b)def align_heap(A: list[int], start: int, end: int):k = startwhile True:if 2 * k + 2 < end:p = A[k]l = A[2 * k + 1]r = A[2 * k + 2]m = max(p, l, r)if m == p:breakelif m == l:A[k], A[2 * k + 1] = A[2 * k + 1], A[k]k = 2 * k + 1else:A[k], A[2 * k + 2] = A[2 * k + 2], A[k]k = 2 * k + 2elif 2 * k + 1 < end:p = A[k]l = A[2 * k + 1]m = max(p, l)if m == p:breakelse:A[k], A[2 * k + 1] = A[2 * k + 1], A[k]k = 2 * k + 1else:breakdef build_heap(A: list[int]):N = len(A)for x in range(N // 2 - 1, -1, -1):align_heap(A, x, N)def heap_sort(A: list[int], M: int):build_heap(A)N = len(A)for i in range(N - 1, 0, -1):A[0], A[i] = A[i], A[0]align_heap(A, 0, i)if i == M:print(*A)print(*A)@lru_cachedef f(x: int) -> int:if x == 0:return 0elif x == 1:return 1return f(x - 1) + f(x - 2)def dfs(pos: int, G: list[list[int]], visited: list[bool], is_chosen: list[bool]):ok = Truefor nxt in G[pos]:if not visited[nxt]:visited[nxt] = Truedfs(nxt, G, visited, is_chosen)ok &= not is_chosen[nxt]is_chosen[pos] = okdef solve():L, R, A, B = read_int_list()if A > 0:print(A * R + B)else:print(A * L + B)def main():# solve()t = read_int()for _ in range(t):solve()main()