結果
問題 | No.1997 X Lighting |
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
mod = 998244353def main():import sysfrom bisect import bisect_leftinput = sys.stdin.readlineN, M = map(int, input().split())U0 = set()U1 = set()V0 = set()V1 = set()ans = 0for _ in range(M):x, y = map(int, input().split())u = x + yv = x - yif 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()