公式
A - 連続勝利の記録 / Record of Consecutive Wins 解説
by
A - 連続勝利の記録 / Record of Consecutive Wins 解説
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 入門用コンテンツです。
以下の手順で答えを求めることができます。
- 現在の
Wの連続数 \(w=0\) 、暫定解 \(res=0\) と初期化する。 - \(S\) の各文字について順に以下を繰り返す。
- もし
Wなら \(w\) に \(1\) 加算する。そうでないなら \(w=0\) とする。 - \(res\) を \(\max(res,w)\) に更新する。
- もし
一連の流れは for 文と if 文の組み合わせなどで実現でき、時間計算量は \(O(N)\) です。
実装例 (C++):
#include<bits/stdc++.h>
using namespace std;
int main(){
int N;
cin >> N;
string S;
cin >> S;
int w=0,res=0;
for(auto &nx : S){
if(nx=='W'){w++;}
else{w=0;}
res=max(res,w);
}
cout << res << "\n";
return 0;
}
