公式

A - Order Something Else 解説 by leaf1415


初心者の方へ
  • プログラミングの学習を始めたばかりで何から手をつけるべきかわからない方は、まずは practice contest の問題A「Welcome to AtCoder」をお試しください。言語ごとに解答例が掲載されています。
  • また、プログラミングコンテストの問題に慣れていない方は、 AtCoder Beginners Selection の問題をいくつか試すことをおすすめします。
  • C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。

もし割引券を使うのであれば、もっとも安い料理を注文するのが最適です。よって、もっとも安い料理の価格を \(D_{\min}\) 円とすると、

  • 割引券を使わない場合の支払額 \(P\) 円と、
  • 割引券を使ってもっとも安い料理を注文する場合の支払額 \(Q + D_{\min}\)

のうち、より安い方の金額 \(\min\lbrace P, Q + D_{\min}\rbrace\) を出力すれば本問題に正解できます。

もっとも安い料理の価格 \(D_{\min}\) を求めるには、すべての料理 \(1, 2, \ldots, N\) を順に調べてそれらの価格を比較する必要があります。 「料理 \(1, 2, \ldots, N\) を順に調べ」ることの実装には、プログラミング言語の標準的な機能である 繰り返し の機能( for 文など)を用いることができます。

以下に、C++ 言語による本問題の正解例を記載します。

#include <iostream>
using namespace std;

int main(void)
{
  int n, p, q;
  cin >> n >> p >> q;
  
  int d_min = 1000000000, d;
  for(int i = 1; i <= n; i++){
    cin >> d;
    d_min = min(d, d_min);
  }
  cout << min(p, q+d_min) << endl;
  
  return 0;
}    

投稿日時:
最終更新: