Yuulis.log

Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 361 A - Insert | 茶コーダーが解くAtCoder

atcoder.jp

実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 15

問題概要

長さ  N の整数列  A と整数  K, X が与えられる。  A K 番目の要素の直後に  X を挿入した整数列を出力せよ。

制約

  • 入力はすべて整数。
  •  1 \leq K \leq X \leq 100
  •  1 \leq A_i, X \leq 100

考察

色々実装の方針がありそうだが、一番簡単なのはタイトルの通りvector::insertを使う方法だろう。

insertは第一引数に要素を挿入したい位置のイテレータ、第二引数に挿入したい要素を指定する。

cpprefjp.github.io

挿入の処理には線形時間かかるせいで使いどころがあまりないので存在を忘れがち。

コード

#include <bits/stdc++.h>
using namespace std;

#define rep(i, start, end) for (auto i = (start); (i) < (end); (i)++)

// ======================================== //

int main()
{
    int N, K, X;
    cin >> N >> K >> X;
    vector<int> A(N);
    rep(i, 0, N) cin >> A[i];

    A.insert(A.begin() + K, X);

    for (auto &&a : A)
    {
        cout << a << " ";
    }
    cout << endl;
}

atcoder.jp

実装時間: 5分以内