##Atcoder Grand Contest 038 B のサンプルの答えが合わない
正確な問題文は
https://atcoder.jp/contests/agc038/tasks/agc038_b になります.
整数0~N-1からなる順列P = (P_0, P_1... P_{N-1})が与えられ
Pの連続するK個の要素を昇順にソートします.
この際にできる順列の場合の数を求めるという問題です.
このときに与えられている入力例3の答えが合いません.
入力 N, K = [10, 4] P = [2, 0, 1, 3, 7, 5, 4, 6, 8, 9] に対して答えは6になる.
該当のソースコード
Python3
1N,K = [10,4] 2P = [2, 0, 1, 3, 7, 5, 4, 6, 8, 9] 3for i in range(N - K + 1): 4 Q = [2, 0, 1, 3, 7, 5, 4, 6, 8, 9] 5 tmp = P[i:i+K] # Pの連続するKの要素を切り出してsort 6 tmp.sort() 7 for j in range(K): 8 Q[i+j] = tmp[j] #sortしたものをPに戻す 9 print(Q)
出力
[0, 1, 2, 3, 7, 5, 4, 6, 8, 9] [2, 0, 1, 3, 7, 5, 4, 6, 8, 9] [2, 0, 1, 3, 5, 7, 4, 6, 8, 9] [2, 0, 1, 3, 4, 5, 7, 6, 8, 9] [2, 0, 1, 3, 4, 5, 6, 7, 8, 9] [2, 0, 1, 3, 7, 4, 5, 6, 8, 9] [2, 0, 1, 3, 7, 5, 4, 6, 8, 9]
出力された順列はそれぞれ異なるので答えは7つになると思います.
補足
他の方のコードで試したみたところ答えは6なので私のコードが間違っています.
またAtcoderでは問題の解説がなされるのですが,そのpdfを見ても上のコードは何がまちがっている良くわかりません.
何卒ご回答のほどよろしくお願い申し上げます.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/22 06:08