結果

問題 No.1537 私の代わりに仕事やっといてください。
ユーザー 👑 KazunKazun
提出日時 2021-06-06 18:53:24
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 460 ms / 2,000 ms
コード長 703 bytes
コンパイル時間 315 ms
コンパイル使用メモリ 86,840 KB
実行使用メモリ 148,380 KB
最終ジャッジ日時 2023-08-17 18:57:21
合計ジャッジ時間 2,767 ms
ジャッジサーバーID
(参考情報)
judge14 / judge13
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 78 ms
71,336 KB
testcase_01 AC 78 ms
71,216 KB
testcase_02 AC 460 ms
148,380 KB
testcase_03 AC 80 ms
71,184 KB
testcase_04 AC 80 ms
71,424 KB
testcase_05 AC 79 ms
71,432 KB
testcase_06 AC 81 ms
71,328 KB
testcase_07 AC 95 ms
76,520 KB
testcase_08 AC 95 ms
76,684 KB
testcase_09 AC 96 ms
76,704 KB
testcase_10 AC 114 ms
80,200 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