• Source
    1. #include <iostream>
    2. #include <string>
    3. #include <math.h>
    4. #include <vector>
    5. using namespace std;
    6.  
    7. int dolec (int a, int b)
    8. {
    9. if (a-b>0) return (a-b);
    10. else return b-a;
    11. }
    12.  
    13. int main ()
    14. {
    15. int dl;
    16. cin>>dl;
    17. string xau;
    18. cin>>xau;
    19. vector <char> hangdoi;
    20. for (int i=0; i<xau.length(); i++)
    21. {
    22. hangdoi.push_back(xau[i]);
    23. }
    24. int nam=0;
    25. int nu=0;
    26. while (1)
    27. {
    28. if (hangdoi.empty()) break;
    29. if (hangdoi[0]=='M')
    30. {
    31. int namp=nam+1;
    32. int nup=nu+0;
    33. if (dolec(namp, nup)<=dl)
    34. {
    35. nam=namp;
    36. nu=nup;
    37. hangdoi.erase(hangdoi.begin());
    38. }
    39. else
    40. {
    41. if (hangdoi[1]=='M')
    42. {
    43. break;
    44. }
    45. else
    46. {
    47. namp=nam+0;
    48. nup=nu+1;
    49. if (dolec(namp, nup)<=dl)
    50. {
    51. nam=namp;
    52. nu=nup;
    53. hangdoi.erase(hangdoi.begin()+1);
    54. }
    55. else break;
    56. }
    57. }
    58. }
    59. if (hangdoi[0]=='W')
    60. {
    61. int namp=nam+0;
    62. int nup=nu+1;
    63. if (dolec(namp, nup)<=dl)
    64. {
    65. nam=namp;
    66. nu=nup;
    67. hangdoi.erase(hangdoi.begin());
    68. }
    69. else
    70. {
    71. if (hangdoi[1]=='W')
    72. {
    73. break;
    74. }
    75. else
    76. {
    77. namp=nam+1;
    78. nup=nu+0;
    79. if (dolec(namp, nup)<=dl)
    80. {
    81. nam=namp;
    82. nu=nup;
    83. hangdoi.erase(hangdoi.begin()+1);
    84. }
    85. else break;
    86. }
    87. }
    88. }
    89. }
    90. cout<<nam+nu;
    91. return 0;
    92. }