公式

B - 果樹園の収穫区間 / Harvest Interval in the Orchard 解説 by kyopro_friends


問題は「 出荷基準を満たす木は最大で何連続しているか?」という意味です。

\(1,2,\dots\) の順に出荷基準を満たしているかどうかを確認しながら「今の連続数」「これまでの最大連続数」を更新すればよいです。

実装例 (C++)

#include<bits/stdc++.h>
using namespace std;

int main(){
  int n, l, r;
  cin >> n >> l >> r;
  vector<int>t(n);
  for(int i=0; i<n; i++) cin >> t[i];

  int ans = 0, crr = 0;
  for(int i=0; i<n; i++){
    if(l <= t[i] && t[i] <= r){
      crr++;
    }else{
      crr = 0;
    }
    ans = max(ans, crr);
  }
  cout << ans << endl;
}

実装例 (Python)

N, L, R = map(int, input().split())
T = list(map(int, input().split()))

ans = 0
crr = 0
for t in T:
  if L <= t <= R:
    crr += 1
  else:
    crr = 0
  ans = max(ans, crr)

print(ans)

投稿日時:
最終更新: