実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 18
問題概要
正整数 が与えられる。長さ の数列 に対し、 項目から 項目までを逆順にした数列を出力せよ。
制約
- 入力はすべて整数。
考察
配列を逆順にするといえば、 C++ ではreverse
関数だろう。この第一引数と第二引数にそれぞれ始点と終点を与えてやればよいのだが、開区間で指定することに注意。
また、iota
という関数を使うことで、 を簡単に作成することができる。
コード
#include <bits/stdc++.h> using namespace std; #define all(x) (x).begin(), (x).end() // ======================================== // int main() { int N, L, R; cin >> N >> L >> R; vector<int> A(N); iota(all(A), 1); reverse(A.begin() + L - 1, A.begin() + R); for (auto a : A) cout << a << " "; cout << endl; }
実装時間: 5分以内