結果
| 問題 |
No.2732 Similar Permutations
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-04-19 22:35:35 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,317 bytes |
| コンパイル時間 | 1,963 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 151,392 KB |
| 最終ジャッジ日時 | 2024-10-11 16:13:47 |
| 合計ジャッジ時間 | 31,978 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / 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:
a = [[a[i], i] for i in range(n)]
a.sort()
ok = 0
p1 = [0]*(n)
p2 = [0]*(n)
s = set([i for i in range(1, n+1)])
for i in range(2, n):
x,xi = a[i-2]
y,yi = a[i-1]
z,zi = a[i]
if z-x < n:
d1 = y-x
d2 = z-y
p1[xi], p1[yi], p1[zi] = 1+d1, 1+d1+d2, 1
p2[xi], p2[yi], p2[zi] = 1+d1+d2, 1, 1+d1
ok = 1
s.discard(1)
s.discard(1+d1)
s.discard(1+d1+d2)
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)