結果
問題 | No.411 昇順昇順ソート |
ユーザー |
![]() |
提出日時 | 2019-05-16 09:49:34 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 37 ms / 2,000 ms |
コード長 | 693 bytes |
コンパイル時間 | 14,566 ms |
コンパイル使用メモリ | 227,040 KB |
実行使用メモリ | 6,400 KB |
最終ジャッジ日時 | 2024-09-16 08:58:32 |
合計ジャッジ時間 | 15,867 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 30 |
ソースコード
package main import ( "fmt" ) func main() { var n, k int _, _ = fmt.Scan(&n, &k) nums := make([]int, n) for i := range nums { nums[i] = i + 1 } nums = remove411(nums, k-1) fmt.Println(ascAsc411(nums, k)) } func remove411(s []int, i int) []int { n := make([]int, len(s)) copy(n, s) return append(n[:i], n[i+1:]...) } func ascAsc411(nums []int, before int) int { cnt := 0 for i, n := range nums { if n < before { // 前の数字より小さな数字でかつ、数列の一番前 = 続く数字が自分より大きい数字しかない場合に昇順昇順になる if i == 0 { cnt++ } } else { cnt += ascAsc411(remove411(nums, i), n) } } return cnt }