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 の問題を紹介していきます。