ライブラリ・ソートの使用(推定数)
4566 ワード
完全なナビゲーション(遡及、ステータスツリー、エッジの切断)-深度優先ナビゲーションベース
に質問
すいていすうれつ
一番上の列には1からNまでの数字が書いてあります.そして、2行目からパスカルの三角形のように、上の2つを加算した値が格納されます.たとえば、Nが4で、一番上の行が3 1 2 4の場合、次の三角形が描画されます.
Nと一番下の数字が与えられた場合、一番上の行の数字を求めるプログラムを作成してください.しかし、答えがいろいろある場合は、一番前のものを辞書順に印刷します.
■説明の入力
第1行は2つの整数N(1≦N≦10)とFを与える.Nは最上行数の個数を表し、Fは最下行数100000以下である.
■出力説明
最初の行では、三角形の一番上のN個の数字をスペースで区切って出力します.答えが存在しなければ入力できません.
■入力例1
4 16
■出力例1
3 1 2 4
コード#コード#💻
にこうけいすう
に答える
import sys
import itertools as it
#sys.stdin=open("input.txt", "rt") # read text
n, f = map(int, input().split())
b = [1] * n
for i in range(1, n):
b[i] = b[i-1] * (n - i) // i
a = list(range(1, n+1))
for tmp in it.permutations(a): # 순열
sum = 0
for L, x in enumerate(tmp): # index, value 모두 접근
sum += x * b[L]
if sum == f:
for x in tmp:
print(x, end = " ")
break
リファレンスReference
この問題について(ライブラリ・ソートの使用(推定数)), 我々は、より多くの情報をここで見つけました https://velog.io/@jsj3282/라이브러리를-이용한-순열수열추측하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol