fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. int n,ans,dp[200005][3];
  5. string s;
  6. signed main(){
  7. ios::sync_with_stdio(false);
  8. cin.tie(0),cout.tie(0);
  9. cin>>n;
  10. cin>>s;
  11. s=' '+s;
  12. for(int i=1;i<=n;i++){
  13. for(int j=0;j<3;j++){
  14. if(s[i]=='R' && j==2){
  15. continue;
  16. }else if(s[i]=='P' && j==0){
  17. continue;
  18. }else if(s[i]=='S' && j==1){
  19. continue;
  20. }else{
  21. if(s[i]=='R' && j==1){
  22. dp[i][j]=max(dp[i-1][0],dp[i-1][2])+1;
  23. }else if(s[i]=='P' && j==2){
  24. dp[i][j]=max(dp[i-1][0],dp[i-1][1])+1;
  25. }else if(s[i]=='S' && j==0){
  26. dp[i][j]=max(dp[i-1][1],dp[i-1][2])+1;
  27. }else{
  28. if(s[i]=='R'&& j==0){
  29. dp[i][j]=max(dp[i-1][1],dp[i-1][2]);
  30. }else if(s[i]=='P'&& j==1){
  31. dp[i][j]=max(dp[i-1][0],dp[i-1][2]);
  32. }else if(s[i]=='S'&& j==2){
  33. dp[i][j]=max(dp[i-1][0],dp[i-1][1]);
  34. }
  35. }
  36. }
  37. }
  38. }
  39. cout<<max(dp[n][0],max(dp[n][1],dp[n][2]));
  40. return 0;
  41. }
Success #stdin #stdout 0s 5320KB
stdin
24
SPRPSRRRRRPPRPRPSSRSPRSS
stdout
18