AtCoder

ABC310 A問題(Order Something Else)を解く

AtCoder_ABC310_A

AtCoder が提供しているABC(AtCoder Beginner Contest)310 のA問題をC++とPythonで解いてみました。ABC310は、2023年7月15日21:00に実施されました。

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

A問題 Order Something Else(Difficulty : 23)

問題はリンク先をご覧ください。

ABC310 A問題 Order Something Else

商品の2つの買い方でどちらが安いか判定する問題です。AtCoder Problems による Difficulty は 23 でした。

解答案

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

次の2つの安い方の支払額を求めます。

  • 商品の定価 P 円
  • 商品の割引価格 Q 円と N 個の他の商品の中でもっと安い価格を加えた支払額

一番安い価格を求めるためにソートして、d[0] を参照しています(12、14行目)。

以下が、C++プログラムとなります。

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

int main()
{
	int n, p, q;
	cin >> n >> p >> q;
	vector<int> d(n);
	for (int i = 0; i < n; ++i) {
		cin >> d[i];
	}
	sort(d.begin(), d.end());

	int result = min(p, q + d[0]);
	cout << result << endl;

	return 0;
}

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

Python プログラム例(ABC310A)

Python は、最小値を組込み関数 min で求めることができます(5行目)。全体もすっきりと書けています。

"""AtCoder Beginner Contest 310 A"""
n, p, q = map(int, input().split())
d = list(map(int, input().split()))

result = min(p, q + min(d))
print(result)

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

最後に

ABC310は、D問題とE問題が自分には難しく、A問題からC問題までの3問しか解けませんでした。しかし、プログラムを書くことによって問題を解くことは楽しく、続けようと考えています。

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

COMMENT

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

CAPTCHA