Official
A - 連続する高得点区間 / Consecutive High-Score Segments Editorial
by
A - 連続する高得点区間 / Consecutive High-Score Segments Editorial
by
physics0523
初心者の方へ
- AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
- また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
- C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。
- Python入門 AtCoder Programming Guide for beginners (APG4bPython) は、競技プログラミングのための Python 入門用コンテンツです。
色々な解法がありえますが、一例を示します。
まず、条件分岐によって各人の得点から「合格者なら \(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:
