AtCoder

ABC356 A問題(Subsegment Reverse)を解く

AtCoder_ABC356_A

AtCoder が提供しているABC(AtCoder Beginner Contest)356 A問題をC++とPythonで解いてみました。ABC356は、2024年6月1日21:00に実施されました。

AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。

A問題 Subsegment Reverse(Difficulty : 18)

問題の詳細は、リンク先をご覧ください。

ABC356 A問題 Subsegment Reverse

繰り返し文の練習です。AtCoder Problems による Difficulty は 18 でした。

解答案

C++ プログラム例(ABC356A)

1以上L未満の整数、L以上R以下の整数を逆順に、Rより大きくN以下の整数を出力します。

C++のfor文の条件式(真ん中にある式)が満たされないと、ループは一度も実行されずに終了します。3つの繰り返し文を使って問題を解くことができました。

以下が、C++プログラムです。

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

int main()
{
	int n, L, R;
	cin >> n >> L >> R;

	for (int i = 1; i < L; ++i) {
		cout << i << " ";
	}
	for (int i = R; i >= L; --i) {
		cout << i << " ";
	}
	for (int i = R + 1; i <= n; ++i) {
		cout << i << " ";
	}
	cout << endl;

	return 0;
}

AC(Accepted=正しいプログラム)と判定されました。

Python プログラム例(ABC356A)

Python版も基本的な考え方は同じです。以下がプログラムです。

"""AtCoder Beginner Contest 356 A"""
n, L, R = map(int, input().split())

result = []
for i in range(1, L):
    result.append(i)
for i in range(R, L - 1, -1):
    result.append(i)
for i in range(R + 1, n + 1):
    result.append(i)

print(*result)

こちらも「AC」と判定されました。

最後に

繰り返し文のちょうど良い練習問題だと思います。

引き続き ABC の問題を紹介していきます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA