Official

A - Insert Editorial by physics0523


初心者の方へ

方針1. 実際に数列 \(B\) を構成する

\(N,K,X\) と数列 \(A\) を受け取った後、 \(A\)\(K\) 要素目の直後に \(X\) を付加すればよいです。
例えば、 Python のリストを用いる場合は insert メソッドが活用できます。
その他の言語については、各言語での配列の操作方法に関する記事やその言語のリファレンス等を参照してください。

実装例 (Python):

n,k,x = map(int,input().split())
a = list(map(int,input().split()))
a.insert(k,x)
print(*a)

実装例の print(*a) の部分について、リスト名の前に * を付けることで不要な括弧を出力しないようにすることができます。


方針2. 数列 \(B\) を実際には構成せず、見た目だけ整えて出力する

実は、この問題では出力の見た目さえ整えてしまえば実際に数列 \(B\) をプログラム内で構成する必要も数列 \(A\) をプログラム内で保持する必要もありません。
具体的には、数列 \(A\) の各要素を受け取りながら受け取ったものをそのまま出力し、 \(K\) 要素目を出力した直後に \(X\) を追加で出力し、その後数列 \(A\) の残りの部分の受け取りと出力を続ければよいです。

実装例 (C++):

#include<bits/stdc++.h>

using namespace std;

int main(){
  int n,k,x;
  cin >> n >> k >> x;
  for(int i=0;i<n;i++){
    int a;
    cin >> a;
    if(i!=0){cout << " ";}
    cout << a;
    if(i==(k-1)){
      cout << " " << x;
    }
  }cout << "\n";
  return 0;
}

posted:
last update: