B - Fill the Gaps Editorial by evima
原案者の実装与えられた手順の代わりに次を行っても同じ出力が得られます。
- \(A_1\) を出力する。
- \(A_1 < A_2\) なら、\(A_1 + 1, A_1 + 2, \ldots, A_2 - 1\) をこの順に出力する。そうでないなら、\(A_1 - 1, A_1 - 2, \ldots, A_2 + 1\) をこの順に出力する。(\(A_2 - A_1 = \pm 1\) のときは何も出力されない。)
- \(A_2\) を出力する。
- 上と同様に、\(A_2\) と \(A_3\) の間の数を出力する。
- \(A_3\) を出力する。
- \(\vdots\)
- \(A_{N-1}\) を出力する。
- 上と同様に、\(A_{N-1}\) と \(A_N\) の間の数を出力する。
- \(A_N\) を出力する。
実装例(Python)
N, A = int(input()), list(map(int, input().split()))
for i in range(N - 1):
print(A[i], end=' ')
if A[i] < A[i + 1]:
for x in range(A[i] + 1, A[i + 1]):
print(x, end=' ')
else:
for x in range(A[i] - 1, A[i + 1], -1):
print(x, end=' ')
print(A[-1])
posted:
last update: