結果
| 問題 |
No.1635 Let’s Sort Integers!!
|
| コンテスト | |
| ユーザー |
とりゐ
|
| 提出日時 | 2021-07-05 02:26:03 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,074 bytes |
| コンパイル時間 | 296 ms |
| コンパイル使用メモリ | 82,004 KB |
| 実行使用メモリ | 195,200 KB |
| 最終ジャッジ日時 | 2024-09-15 21:26:43 |
| 合計ジャッジ時間 | 18,458 ms |
|
ジャッジサーバーID (参考情報) |
judge6 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 51 WA * 26 |
ソースコード
def f(n,k):
#n%2==1 and k>n*(n-1)//2
if k>(n**2-3)//2:
return [-1]
ans=[0]*n
m=(n**2-3)//2-k+n//2+2
for i in range(n//2):
if n//2+2+i==m:
ans[2*i]=n//2+2
else:
ans[2*i]=n//2+2+i
ans[2*i+1]=i+1
ans[n-1]=n//2+1
ans[0]=m
print(m)
return ans
def f2(n,k):
#n%2==0 and k>n*(n-1)//2
if k>n**2//2-1:
return [-1]
ans=[0]*n
m=n**2//2-k+n//2
for i in range(n//2):
if n//2+1+i==m:
ans[2*i]=n//2+1
else:
ans[2*i]=n//2+1+i
ans[2*i+1]=n//2-i
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 n%2==1:
if k>n*(n-1)//2:
print(*f(n,k))
else:
print(*g(n,k))
else:
if k>n*(n-1)//2:
print(*f2(n,k))
else:
print(*g(n,k))
とりゐ