ABC466 A - Compromise

妥協

考え方

入力は整数と数列が $1$ つずつ。
int 型の変数と vector を $1$ つずつ用意し、cin で入力を受け取る。

さて、問題の意味がパッと読むだけだと分かりづらいが、タイトルから考えると少し理解できる。
「どんな選択でも損するけど仕方がないな」と妥協しなければいけない状況か、という意図らしい。

これは、選択肢を $1$ つずつ見て、「これは損しますか?」と確認をしていくとよい。
全てが「損します」なら、答えは "Yes"
$1$ つでも「損しません」があれば、答えは "No"

すべての選択肢がある条件を満たすかどうかの判定は、以下の手順で行う。

全部見終わった後で、bool 型変数の中身が true だったら "Yes"、そうでなければ "No" を出力。
最初から string 型変数を使った場合にはそのまま出力すればよい。

入力例1での動作

入力を受け取る。

n: 4
x: {2, 0, -1, 2}

答え用の変数 result"Yes" で初期化する。

result: "Yes"

x の要素を前から順に確認する。

x[0]2 であり、$0$ 以上なので、result"No" にする。

result: "No"

x[1]0 であり、$0$ 以上なので、result"No" にする。

result: "No"

x[2]-1 であり、$0$ 未満なので、result は変更しない。

result: "No"

x[3]2 であり、$0$ 以上なので、result"No" にする。

result: "No"

最後に、result を出力すればよい。

注意点

特になし。

別解

ループ内で「今何番目であるか」を使わないので、範囲for文を使ってもよい。

いちいち .at(i) を書く手間が省けるし、for ループを何回回すべきか考える必要もなくなる。