Official

A - Potions Editorial by Nyaan


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

この問題は for 文のような繰り返し文をうまく使えるかを聞いている問題です。for 文に関する情報を知りたい人は APG4b の記事 などを参考にしてみてください。

この問題は、\(H + P_i \geq X\) を満たすような \(i\) のうち最小の整数が聞かれています。これは配列に \(P_1, P_2, \dots, P_N\) を格納した後に for 文を利用して配列の要素を \(1\) 個ずつ読み取っていくことで条件を満たす \(i\) を発見できます。

C++ と Python による実装例は以下の通りです。

  • 実装例 (C++)
#include <iostream>
using namespace std;
int main() {
  int N, H, X, P[111];
  cin >> N >> H >> X;
  for (int n = 1; n <= N; n++) cin >> P[n];
  for (int n = 1; n <= N; n++) {
    if (H + P[n] >= X) {
      cout << n << endl;
      break;
    }
  }
}
  • 実装例 (Python)
N, H, X = map(int, input().split())
P = [*map(int, input().split())]
for n in range(N):
    if H+P[n] >= X:
        print(n+1)
        exit(0)

posted:
last update: