結果
問題 | No.1888 Odd Insertion |
ユーザー |
![]() |
提出日時 | 2021-11-07 03:46:26 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,387 bytes |
コンパイル時間 | 210 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 37,828 KB |
最終ジャッジ日時 | 2024-06-29 06:03:17 |
合計ジャッジ時間 | 63,740 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 28 TLE * 9 |
ソースコード
# ACL-for-python by shakayami# https://github.com/shakayami/ACL-for-pythonclass fenwick_tree():n = 1data = [0 for i in range(n)]def __init__(self, N):self.n = Nself.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 += 1while(p <= self.n):self.data[p-1] += xp += p & -pdef 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 = 0while(r > 0):s += self.data[r-1]r -= r & -rreturn simport sysn = int(input())p = list(map(int, input().split()))for i in range(n):p[i] -= 1q = [0] * nfor i in range(n):q[p[i]] = ifw = fenwick_tree(n)x, y = [0] * n, [0] * nfor i in range(n - 1):y1 = fw.sum(0, q[i])y2 = fw.sum(0, q[i + 1])if y1 % 2 != 0 and y2 % 2 != 0:print("No")sys.exit(0)if y2 % 2 == 0:if y1 % 2 != 0 or q[i] < q[i + 1]:q[i], q[i + 1] = q[i + 1], q[i]y1, y2 = y2, y1x[i] = p[q[i]]y[i] = y1fw.add(q[i], 1)x[-1] = p[q[-1]]y[-1] = fw.sum(0, q[-1])if y[-1] % 2 != 0:print("No")sys.exit(0)print("Yes")for i in range(n):print(x[i] + 1, y[i] + 1)