Python3で解く M-SOLUTIONS プロコンオープン 2020 C - Marks
結構単純。回テストがあって、頭から
個ぶんたまったら、累積積(総乗)をずらしながら考える。
この時のポイントは、出と入の大小関係できまるので実際に総乗を計算する必要はないということ。(出と入については後述する。)解説は出と入の割合を計算していたが、大小関係をでも同じこと。
概要
回テストを行う。
回分テスト結果がたまったら、総乗を計算し始める
回目のテストから
回目のテストまで、最新のテスト結果を含む過去
回ぶんの総乗の結果を
とすると
と
の大小の結果は?(全部で
個の結果となる)
解くときに考えた内容
これは、単純に
個ごとにずれていくだけなので、総乗の結果である
を計算しなくていい。
ずれていくというのは、以下の様なイメージ
Ai と Ak+iの差で大小関係が決まっていくイメージ と
の違いは以下である。
と
だけでそれ以外の数値は共通である。
なので、このと
をそれぞれを出と入と表現していた。
- コードも非常にシンプルである。
コード
n, k = map(int, input().split()) A = [int(x) for x in input().split()] for i in range(n-k): if A[i] < A[i+k]: print('Yes') else: print('No')