Official

A - 連続する高得点区間 / Consecutive High-Score Segments Editorial by physics0523


初心者の方へ


色々な解法がありえますが、一例を示します。

まず、条件分岐によって各人の得点から「合格者なら \(1\) 、不合格者なら \(0\)」に変換します。
その後、人を番号順に並べた時、 \(0\) から \(1\) に切り替わる点を検出することで区間の数を数えることができます。

一連の流れは if 文や for 文などを組み合わせて実装できます。

実装例 (C++):

#include<bits/stdc++.h>

using namespace std;

int main(){
  int N,K;
  cin >> N >> K;
  int res=0;
  vector<int> A(N+1,0);
  for(int i=1;i<=N;i++){
    cin >> A[i];
    if(A[i]>=K){A[i]=1;}
    else{A[i]=0;}
    if(A[i-1]==0 && A[i]==1){res++;}
  }
  cout << res << "\n";
  return 0;
}

posted:
last update: