結果

問題 No.3030 Kruskal-Katona
ユーザー Today03
提出日時 2025-02-21 22:16:01
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 661 bytes
コンパイル時間 346 ms
コンパイル使用メモリ 82,216 KB
実行使用メモリ 82,724 KB
最終ジャッジ日時 2025-02-21 22:16:22
合計ジャッジ時間 4,101 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 1 TLE * 1 -- * 25
権限があれば一括ダウンロードができます

ソースコード

diff #

def binom(n,k):
	if k<0 or k>n:return 0
	if k>n-k:k=n-k
	ret=1
	for i in range(k):ret=ret*(n-i)
	for i in range(k):ret=ret//(i+1)
	return ret


N,I=map(int,input().split())

# if N==I:
# 	for i in reversed(range(1,I+1)):
# 		print(i,end=' ')
# 	print()
# 	exit()

if I>=3:
	ans=[]
	sum=0
	tmp=I
	for n in reversed(range(1,I+10000)):
		now=binom(n,tmp)
		if sum+now<=N:
			sum+=now
			ans.append(n)
			tmp-=1
			if sum==N or tmp==0:break
	assert sum==N
	print(*ans)

else:
	ans=[]
	sum=0
	tmp=I
	for n in reversed(range(1,N+1)):
		now=binom(n,tmp)
		if sum+now<=N:
			sum+=now
			ans.append(n)
			tmp-=1
			if sum==N or tmp==0:break	

	assert sum==N
	print(*ans)
0