Official
A - Insert Editorial
by
A - Insert Editorial
by
physics0523
初心者の方へ
- プログラミングの学習を始めたばかりで何から手をつけるべきかわからない方は、まずは practice contest の問題A「Welcome to AtCoder」をお試しください。言語ごとに解答例が掲載されています。
- また、プログラミングコンテストの問題に慣れていない方は、 AtCoder Beginners Selection の問題をいくつか試すことをおすすめします。
- C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。
- Python入門 AtCoder Programming Guide for beginners (APG4bPython) は、競技プログラミングのための Python 入門用コンテンツです。
方針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: