[AtCoder] M-SOLUTIONS プロコンオープン 2020 C – Marks
問題
方針
\( K \) 学期目の評点を \( f(K) \) とすると、
\[ f(K) = A_1 \times A_2 \times \cdots \times A_{K-1} \times A_K\]
となり、\( K + 1 \) 学期目を考えると、
\begin{eqnarray}
f(K+1) &=& A_2 \times A_3 \times \cdots \times A_{K} \times A_{K+1}\\
f(K+1) &=& \dfrac{1}{A_1} \times f(K) \times A_{K+1} \\
\dfrac{f(K+1)}{f(K)} &=& \dfrac{A_1}{A_{K+1}}
\end{eqnarray}
となるので、\( A_1 \) と \(A_K \) の値を比べれば良いことが分かります。したがって、\( i \) 学期目では、\( A_{1+i} \) と \( A_{K+i} \) を比べれば良いです。
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { int N, K; cin >> N >> K; ll A[N]; for (int i = 0; i < N; i++) { cin >> A[i]; } for (int i = K; i < N; i++) { if (A[i] <= A[i - K]) { cout << "No\n"; } else { cout << "Yes\n"; } } return 0; }
ディスカッション
コメント一覧
まだ、コメントがありません