結果
| 問題 |
No.2719 Equal Inner Products in Permutation
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-04-05 23:04:07 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 190 ms / 2,000 ms |
| コード長 | 997 bytes |
| コンパイル時間 | 181 ms |
| コンパイル使用メモリ | 82,092 KB |
| 実行使用メモリ | 150,756 KB |
| 最終ジャッジ日時 | 2024-10-01 03:00:46 |
| 合計ジャッジ時間 | 7,964 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 30 |
ソースコード
n=int(input())
mid=list(range(1,n+1))
if n==1:
print(-1)
exit()
if n==2:
print(1,6,2,4,3,5)
exit()
if n==5:
print(11,8,13,5,15,1,2,3,4,6,10,9,12,7,14)
exit()
m=sum(mid)
A=list(range(n+1,3*n+1,2))
B=list(range(n+2,3*n+1,2))
if m%2==1:
mid[-1],A[0]=A[0],mid[-1]
for i in reversed(range(n)):
if mid[i]%2==0:
A[0],A[i]=A[i],A[0]
B[0],B[i]=B[i],B[0]
key=i
break
ax=[]
for i in range(n):
if i==key and m%2==1:
ax.append(mid[i]*2)
else:
ax.append(mid[i])
ax.sort()
ay=sum(ax)
ay//=2
S={0}
zz=0
for i in ax:
if zz<ay:
zz+=i
S.add(i)
else:
break
daiv=zz-ay
if daiv!=0:
for i in range(2):
if daiv-i in S:
S.remove(i)
S.remove(daiv-i)
break
for i in range(n):
if mid[i] in S:
A[i],B[i]=B[i],A[i]
#print(S)
#print(ax,ay)
#print(mid,A,B)
a=0
b=0
for i in range(n):
a+=mid[i]*A[i]
b+=mid[i]*B[i]
#print(a,b)
print(*(A+mid+B))