提出 #6696160
ソースコード 拡げる
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10 ** 7)
MOD = 998244353
N = int(input())
XY = [[int(x) for x in input().split()] for _ in range(N)]
XY.sort() # X ascending
X,Y = zip(*XY)
Y_rank = {x:i for i,x in enumerate(sorted(Y),1)}
def BIT_update(tree,x):
while x <= N:
tree[x] += 1
x += x & (-x)
def BIT_sum(tree,x):
ret = 0
while x:
ret += tree[x]
x -= x & (-x)
return ret
pow2 = [1]
for _ in range(N):
pow2.append(pow2[-1] * 2 % MOD)
answer = 0
tree = [0] * (N+1)
for L,(x,y) in enumerate(XY):
y = Y_rank[y]
R = N - 1 - L
D = y - 1
U = N - 1 - D
LD = BIT_sum(tree,y)
BIT_update(tree,y)
LU = L - LD
RD = D - LD
RU = R - RD
# bounding box が自分自身を含むような集合を数える
# 全体から引く
cnt = pow2[N]
cnt -= pow2[L]
cnt -= pow2[R]
cnt -= pow2[D]
cnt -= pow2[U]
cnt += pow2[LD]
cnt += pow2[LU]
cnt += pow2[RD]
cnt += pow2[RU]
cnt -= 1
answer += cnt
answer %= MOD
print(answer)
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Enclosed Points |
| ユーザ | maspy |
| 言語 | PyPy3 (2.4.0) |
| 得点 | 600 |
| コード長 | 1122 Byte |
| 結果 | AC |
| 実行時間 | 1552 ms |
| メモリ | 122436 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | s1.txt, s2.txt, s3.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, s1.txt, s2.txt, s3.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 01.txt | AC | 183 ms | 38384 KiB |
| 02.txt | AC | 173 ms | 38256 KiB |
| 03.txt | AC | 180 ms | 38256 KiB |
| 04.txt | AC | 173 ms | 38256 KiB |
| 05.txt | AC | 173 ms | 38384 KiB |
| 06.txt | AC | 175 ms | 38256 KiB |
| 07.txt | AC | 184 ms | 38256 KiB |
| 08.txt | AC | 179 ms | 38256 KiB |
| 09.txt | AC | 177 ms | 38256 KiB |
| 10.txt | AC | 172 ms | 38256 KiB |
| 11.txt | AC | 1474 ms | 117796 KiB |
| 12.txt | AC | 1462 ms | 120592 KiB |
| 13.txt | AC | 1526 ms | 122436 KiB |
| 14.txt | AC | 1500 ms | 119556 KiB |
| 15.txt | AC | 1552 ms | 121152 KiB |
| 16.txt | AC | 1511 ms | 121792 KiB |
| 17.txt | AC | 1509 ms | 121280 KiB |
| 18.txt | AC | 1502 ms | 121280 KiB |
| 19.txt | AC | 1448 ms | 119416 KiB |
| 20.txt | AC | 1482 ms | 120160 KiB |
| 21.txt | AC | 1470 ms | 121280 KiB |
| 22.txt | AC | 1469 ms | 121280 KiB |
| 23.txt | AC | 180 ms | 38256 KiB |
| s1.txt | AC | 183 ms | 38256 KiB |
| s2.txt | AC | 179 ms | 38256 KiB |
| s3.txt | AC | 169 ms | 38256 KiB |