結果
問題 | No.3030 Kruskal-Katona |
ユーザー |
![]() |
提出日時 | 2025-03-10 03:09:22 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 34 ms / 2,000 ms |
コード長 | 588 bytes |
コンパイル時間 | 525 ms |
コンパイル使用メモリ | 12,160 KB |
実行使用メモリ | 10,240 KB |
最終ジャッジ日時 | 2025-03-10 03:09:25 |
合計ジャッジ時間 | 2,547 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
import sys input = sys.stdin.readline N,i=map(int,input().split()) def Combi(a,b):# aは大きいが、bは小さいとき,modなし if b>a or b<0: return 0 ANS=1 for i in range(min(b,a-b)): ANS=ANS*(a-i) for i in range(min(b,a-b)): ANS=ANS//(min(b,a-b)-i) return ANS ANS=[] OK=0 NG=10**8+10 while N>0: OK=0 while NG>OK+1: mid=(OK+NG)//2 if Combi(mid,i)<=N: OK=mid else: NG=mid ANS.append(OK) N-=Combi(OK,i) #print(N,i) i-=1 NG=OK print(*ANS)