結果
問題 | No.1311 Reverse Permutation Index |
ユーザー | Kazun |
提出日時 | 2020-12-08 00:26:27 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 39 ms / 1,500 ms |
コード長 | 583 bytes |
コンパイル時間 | 1,118 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 52,480 KB |
最終ジャッジ日時 | 2024-09-17 14:11:45 |
合計ジャッジ時間 | 995 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 38 ms
51,968 KB |
testcase_01 | AC | 38 ms
52,480 KB |
testcase_02 | AC | 39 ms
52,096 KB |
testcase_03 | AC | 38 ms
51,712 KB |
testcase_04 | AC | 37 ms
52,224 KB |
testcase_05 | AC | 38 ms
51,840 KB |
testcase_06 | AC | 39 ms
52,096 KB |
testcase_07 | AC | 37 ms
52,096 KB |
ソースコード
def f(n): r=1 for i in range(1,n+1): r*=i return r from itertools import permutations N,S=map(int,input().split()) T=[1]*(S+1) K=f(S) X=[0]*(S+1) P=[0] for j in range(S,0,-1): K//=j a,N=divmod(N,K) i=1 while True: if T[i]==1 and a==0: break elif T[i]==1 and a!=0: a-=1 i+=1 T[i]=0 P.append(i) Q=[0]*(S+1) for i in range(1,S+1): Q[P[i]]=i A=0 T=[1]*(S+1) for i in range(1,S+1): K=f(S-i) for j in range(1,Q[i]): if T[j]==1: A+=K T[Q[i]]=0 print(A)