結果
問題 | No.2961 Shiny Monster Master |
ユーザー |
|
提出日時 | 2025-02-06 17:51:52 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 246 ms / 1,777 ms |
コード長 | 1,872 bytes |
コンパイル時間 | 2,588 ms |
コンパイル使用メモリ | 82,172 KB |
実行使用メモリ | 107,088 KB |
最終ジャッジ日時 | 2025-02-06 17:52:13 |
合計ジャッジ時間 | 20,593 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 77 |
ソースコード
import sys import math import bisect from heapq import heapify, heappop, heappush from collections import deque, defaultdict, Counter from functools import lru_cache from itertools import accumulate, combinations, permutations, product sys.set_int_max_str_digits(10 ** 6) sys.setrecursionlimit(1000000) MOD = 10 ** 9 + 7 MOD99 = 998244353 input = lambda: sys.stdin.readline().strip() NI = lambda: int(input()) NMI = lambda: map(int, input().split()) NLI = lambda: list(NMI()) SI = lambda: input() SMI = lambda: input().split() SLI = lambda: list(SMI()) EI = lambda m: [NLI() for _ in range(m)] class BIT(): """ BIT 0-index ACL for python add(p, x): p番目にxを加算 get(p): p番目を取得 sum0(r): [0:r)の和を取得 sum(l, r): [l:r)の和を取得 """ def __init__(self, N): self.n = N self.data = [0 for i in range(N)] def add(self, p, x): assert 0 <= p < self.n, "0<=p<n,p={0},n={1}".format(p, self.n) p += 1 while (p <= self.n): self.data[p - 1] += x p += p & -p def get(self, p): return self.sum(p, p + 1) def sum(self, l, r): assert (0 <= l and l <= r and r <= self.n), "0<=l<=r<=n,l={0},r={1},n={2}".format(l, r, self.n) return self.sum0(r) - self.sum0(l) def sum0(self, r): s = 0 while (r > 0): s += self.data[r - 1] r -= r & -r return s def debug(self): res = [self.get(p) for p in range(self.n)] return res def main(): R, N = NMI() A = NLI() Q = NI() T = BIT(2*R) for a in A: T.add(a, 1) T.add(a+R, 1) for _ in range(Q): l, r = NMI() r += 1 x, k = divmod(r-l, R) l %= R ans = x * N + T.sum(l, l+k) print(ans) if __name__ == "__main__": main()