結果

問題 No.1537 私の代わりに仕事やっといてください。
ユーザー 👑 KazunKazun
提出日時 2021-06-06 18:53:24
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 381 ms / 2,000 ms
コード長 703 bytes
コンパイル時間 175 ms
コンパイル使用メモリ 81,792 KB
実行使用メモリ 149,576 KB
最終ジャッジ日時 2024-05-05 01:51:30
合計ジャッジ時間 1,754 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 37 ms
51,584 KB
testcase_01 AC 38 ms
51,840 KB
testcase_02 AC 381 ms
149,576 KB
testcase_03 AC 38 ms
51,968 KB
testcase_04 AC 38 ms
51,968 KB
testcase_05 AC 37 ms
51,968 KB
testcase_06 AC 38 ms
51,968 KB
testcase_07 AC 57 ms
65,280 KB
testcase_08 AC 56 ms
64,512 KB
testcase_09 AC 60 ms
66,560 KB
testcase_10 AC 86 ms
78,336 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

def greedy():
    from itertools import permutations

    X=-1
    P=None
    for p in permutations(range(2,N+1)):
        M=A[1]*A[p[0]]+A[p[-1]]*A[1]
        for i in range(N-2):
            M+=A[p[i]]*A[p[i+1]]

        if M>X:
            X=M
            P=p
    return X,P

N=int(input())
A=["*"]+list(map(int,input().split()))

if N==2:
    exit(print(1,2,1))
elif N==3:
    exit(print(1,2,3,1))

AA=[(x,i) for i,x in enumerate(A[1:],1)]
AA.sort(key=lambda t:t[0])

L=[1]+list(range(2,N+1,2))
R=list(range(3,N+1,2))[::-1]
I=L+R
I_inv=[0]*(N+1)
for i in range(N):
    I_inv[I[i]]=i+1

V=[0]*(N+1)
for i in range(N):
    _,j=AA[i]
    V[I_inv[i+1]]=j

V=V[1:]
k=V.index(1)
V=V[k:]+V[:k]
print(*V,1)
0