この問題ではプログラミングの基礎文法である if
文と for
文を組み合わせて解くことが出来ます。
実装のヒントは問題文に書いてあるので、それ通りに実装をしましょう。
「広義単調増大とは のすべての において を満たすことを言います」
以下のステップをたどることでこの問題を解くことが出来ます。 プログラミングでは 0-index であることに注意してください。(プログラムでは ではなく と数えるので、添え字がずれます。)
for
文を回して、 について配列 の要素を参照する。
No
と出力し、プログラムを終了する。Yes
を出力する。n = int(input()) A = list(map(int,input().split())) for i in range(n-1): if(A[i]>A[i+1]): print("No") exit() print("Yes")
以下のように、 について であるかを判定する方法でもこの問題を解くことが出来ます。
for
文の開始位置と終了位置は異なりますが、お互いのコードはどちらも同じことをしています。
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; vector<int> a(n); for(int i = 0; i < n; i++) cin >> a[i]; string ans = "Yes"; for(int i = 1; i < n; i++){ if(a[i-1] > a[i]){ ans = "No"; } } cout << ans << endl; }