結果
問題 | No.1997 X Lighting |
ユーザー | sotanishy |
提出日時 | 2022-07-01 22:51:37 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 202 ms / 2,000 ms |
コード長 | 773 bytes |
コンパイル時間 | 314 ms |
コンパイル使用メモリ | 82,128 KB |
実行使用メモリ | 96,040 KB |
最終ジャッジ日時 | 2024-11-26 06:29:08 |
合計ジャッジ時間 | 5,249 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
ソースコード
from bisect import bisect_left import sys input = sys.stdin.readline N, M = map(int, input().split()) X = [set(), set()] Y = [set(), set()] for _ in range(M): x, y = map(int, input().split()) x -= 1 y -= 1 r = (x + y) % 2 X[r].add((x + y) // 2) Y[r].add((x - y) // 2) ans = 0 for i in range(2): X[i] = list(X[i]) X[i].sort() Y[i] = list(Y[i]) Y[i].sort() for y in Y[i]: if i == 0: ans += N-2*abs(y) else: if y >= 0: ans += N-1-2*y else: ans += N-1+2*(y+1) for x in X[i]: z = min(x, N-i-1-x) b, t = -z-i, z+1 # inclusive, exclusive ans += 2*z+1+i ans -= bisect_left(Y[i], t) - bisect_left(Y[i], b) print(ans)