結果
| 問題 |
No.2732 Similar Permutations
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-04-19 23:18:26 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,559 bytes |
| コンパイル時間 | 469 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 191,180 KB |
| 最終ジャッジ日時 | 2024-10-11 17:50:00 |
| 合計ジャッジ時間 | 29,638 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 67 WA * 34 |
ソースコード
import sys
sys.setrecursionlimit(5*10**5)
input = sys.stdin.readline
from collections import defaultdict, deque, Counter
from heapq import heappop, heappush
from bisect import bisect_left, bisect_right
from math import gcd
n = int(input())
a = list(map(int,input().split()))
if len(set(a)) != n:
x = [[] for i in range(max(a)+10)]
for i in range(n):
x[a[i]].append(i)
ok = 1
p1 = list(range(1, n+1))
p2 = list(range(1, n+1))
for i in range(max(a)+10):
if len(x[i]) >= 2:
s,t = x[i][0], x[i][1]
p2[t], p2[s] = p2[s], p2[t]
break
else:
ok = 0
p1 = [0]*(n)
p2 = [0]*(n)
s = set([i for i in range(1, n+1)])
mx = max(a)
sa = set(a)
pos = [-1]*(mx+1)
for i in range(n):
pos[a[i]] = i
a.sort()
for i in range(n):
x = a[i]
xi = pos[x]
for j in range(i+1, n):
y = a[j]
yi = pos[y]
d = y-x
if y + d > mx:break
if 1 + 2 * d > n:break
if y+d in sa:
zi = pos[y+d]
p1[xi], p1[yi], p1[zi] = 1+d, 1+d+d, 1
p2[xi], p2[yi], p2[zi] = 1+d+d, 1, 1+d
ok = 1
s.discard(1)
s.discard(1+d)
s.discard(1+d+d)
break
if ok:break
s = list(s)
for i in range(n):
if p1[i]: continue
num = s.pop()
p1[i] = num
p2[i] = num
if ok:
print(*p1)
print(*p2)
else:
print(-1)