結果

問題 No.1997 X Lighting
ユーザー tamato
提出日時 2022-07-01 22:11:31
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 209 ms / 2,000 ms
コード長 1,160 bytes
コンパイル時間 283 ms
コンパイル使用メモリ 82,240 KB
実行使用メモリ 99,448 KB
最終ジャッジ日時 2024-11-26 05:21:46
合計ジャッジ時間 5,149 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

mod = 998244353
def main():
import sys
from bisect import bisect_left
input = sys.stdin.readline
N, M = map(int, input().split())
U0 = set()
U1 = set()
V0 = set()
V1 = set()
ans = 0
for _ in range(M):
x, y = map(int, input().split())
u = x + y
v = x - y
if u & 1:
U1.add(u)
else:
U0.add(u)
if v & 1:
V1.add(v)
else:
V0.add(v)
U0 = sorted(list(U0))
U1 = sorted(list(U1))
V0 = sorted(list(V0))
V1 = sorted(list(V1))
#print(U0, V0)
for u in U0:
mi = max(2 - u, -2 * N + u)
ma = min(2 * N - u, -2 + u)
ans -= bisect_left(V0, ma + 1) - bisect_left(V0, mi)
#print(U1, V1)
for u in U1:
mi = max(2 - u, -2 * N + u)
ma = min(2 * N - u, -2 + u)
ans -= bisect_left(V1, ma + 1) - bisect_left(V1, mi)
for u in U0:
ans += N - abs(N + 1 - u)
for u in U1:
ans += N - abs(N + 1 - u)
for v in V0:
ans += N - abs(v)
for v in V1:
ans += N - abs(v)
print(ans)
if __name__ == '__main__':
main()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0