結果
| 問題 |
No.1311 Reverse Permutation Index
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-12-08 09:41:45 |
| 言語 | Swift (6.0.3) |
| 結果 |
AC
|
| 実行時間 | 9 ms / 1,500 ms |
| コード長 | 559 bytes |
| コンパイル時間 | 8,571 ms |
| コンパイル使用メモリ | 133,104 KB |
| 実行使用メモリ | 9,344 KB |
| 最終ジャッジ日時 | 2024-09-17 14:27:56 |
| 合計ジャッジ時間 | 9,233 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 6 |
ソースコード
let input=readLine()!.split(separator:" ").map{Int($0)!}
var n=input[0]
let s=input[1]
var a:[Int]=[]
for i in 1...s{
a.append(n%i)
n/=i
//print(n,f)
}
//print(a)
var l:[Int]=[]
for i in 1...s{
l.append(i)
}
var perm:[Int]=[]
while !a.isEmpty{
perm.append(l.remove(at:a.removeLast()))
}
//print(perm)
var inv=Array(repeating:0,count:s)
for i in 0..<s{
inv[perm[i]-1]=i+1
}
//print(inv)
l=[]
var f=1
for i in 1...s{
l.append(i)
f*=i
}
var r=0
for i in 0..<s{
let idx=l.firstIndex(of:inv[i])!
f/=s-i
r+=idx*f
l.remove(at:idx)
}
print(r)