問題文の操作を上手に言い換えて、for
文で処理できる形にしよう!
問題概要
長さ の数列 に対して、以下の操作を 回実施してできる数列を出力せよ。
- 数列の先頭の数値を削除し、末尾に 0 を挿入する
制約
考えたこと
C++ では、数列は vector<int>
型で扱うとよい。このとき、数列 A
の先頭の要素を削除する処理は
A.erase(A.begin())
と書ける。また、数列 A
の末尾に 0 を挿入する処理は
A.push_back(0)
と書ける。これらの操作を 回繰り返せば良い。
コード
#include <bits/stdc++.h> using namespace std; int main() { int N, K; cin >> N >> K; vector<int> A(N); for (int i = 0; i < N; i++) cin >> A[i]; for (int i = 0; i < K; i++) { A.erase(A.begin()); A.push_back(0); } for (int i = 0; i < A.size(); i++) cout << A[i] << " "; cout << endl; }