codeforces 374 div2 A. One-dimensional Japanese Crossword
問題概要
連続する黒のマスの数。
解法
Bが始まった位置をl、Bが終わった位置をrを記録しながら、やる。
ミス
サンプルから推測
コード
#include <iostream> #include <algorithm> #include <vector> #include <queue> #include <cstdio> #include <cmath> using namespace std; typedef long long ll; #define rep(i,n) for(int i=0;i<(n);i++) int main(void){ int n; cin >> n; string s; cin >> s; vector<int> ans; int l = 0; rep(r, s.size()){ if(s[r] == 'B'){ while(s[r] == 'B'){ r++; } int len = r - l; ans.push_back(len); l = r + 1; }else{ l = r + 1; } } if(ans.size() == 0){ printf("0\n"); return 0; } printf("%d\n", ans.size()); rep(i, ans.size()){ printf("%d ", ans[i]); } printf("\n"); return 0; }