阅读量:0
using i64 = long long; int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int n; std::cin >> n; std::string s[2]; std::cin >> s[0] >> s[1]; std::array<int, 2> dp {}; int ans = 0; for (int i = 0; i < n; i++) { //上层能走,dp[0]++; if (s[0][i] == 'R') { dp[0]++; } else { dp[0] = 0; }//下层能走,dp[1]++; if (s[1][i] == 'R') { dp[1]++; } else { dp[1] = 0; }//上层下层都能走 if (s[0][i] == 'R' && s[1][i] == 'R') { dp = { std::max(dp[0], dp[1] + 1), std::max(dp[1], dp[0] + 1) }; } //答案在两个里面 ans = std::max({ ans, dp[0], dp[1] }); } ans = std::max(0, ans - 1); std::cout << ans << "\n"; return 0; }