fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. const int m = 1000000007;
  5. const int Max = 1000;
  6.  
  7. int dp[100001][3];
  8.  
  9. int main()
  10. {
  11. int n;
  12. cin>>n;
  13.  
  14. string s;
  15. cin>>s;
  16.  
  17. dp[0][0] = dp[0][1] = dp[0][2] = 1;
  18.  
  19. for(int i = 1 ; i < s.length() ; i++){
  20. dp[i][0] = dp[i-1][0] + (s[i]!=s[i-1]);
  21. dp[i][1] = max(dp[i-1][0]+ (s[i] == s[i-1]) , dp[i-1][1] + (s[i] != s[i-1]) );
  22. dp[i][2] = max(dp[i-1][2] + (s[i] != s[i-1]) , dp[i-1][1] + (s[i] == s[i-1]));
  23. }
  24.  
  25. cout<<max(dp[n-1][0] ,max(dp[n-1][1], dp[n-1][2]))<<endl;
  26. }
Success #stdin #stdout 0s 4196KB
stdin
Standard input is empty
stdout
0