結果
問題 | No.1635 Let’s Sort Integers!! |
ユーザー |
![]() |
提出日時 | 2021-07-21 23:40:26 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 299 ms / 2,000 ms |
コード長 | 757 bytes |
コンパイル時間 | 174 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 195,072 KB |
最終ジャッジ日時 | 2024-09-15 22:11:02 |
合計ジャッジ時間 | 19,714 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 77 |
ソースコード
def f(n,k): if k>n**2//2-1: return [-1] ans=[0]*n if n%2==1: m=n**2//2-k+n//2+1 x=n//2+2 else: m=n**2//2-k+n//2 x=n//2+1 for i in range(n//2): if x+i==m: ans[2*i]=x else: ans[2*i]=x+i ans[2*i+1]=i+1 if n%2==1: ans[n-1]=n//2+1 ans[0]=m return ans def g(n,k): #k<=n*(n-1)//2 used=[1]*(n+1) used[n]=0 k-=n-1 ans=[n] L=n for i in range(n-2): if i%2==0: a=i//2+2 else: a=n-(i+1)//2 if k>=abs(L-a): k-=abs(L-a) L=a used[a]=0 ans.append(a) ans2=[] for i in range(1,n): if used[i]: ans2.append(i) return ans2+ans n,k=map(int,input().split()) if k<n-1: print(-1) elif k>n*(n-1)//2: print(*f(n,k)) else: print(*g(n,k))