【基础训练题解 3106 石头剪刀布 】

  1 // project   : 3106
  2 // file name : main.cpp
  3 
  4 #include <iostream>
  5 using namespace std;
  6 
  7 #define SPACE 32
  8 
  9 int main()
 10 {
 11     int n;
 12     while (cin >> n && n)
 13     {
 14         string str;
 15         int s_time, j_time, b_time;
 16         
 17         // input data 
 18         cin >> str;
 19         cin >> s_time >> j_time >> b_time;
 20         
 21         int score = 0;
 22         
 23         /* 争取赢 */
 24         /* 石头 kill 剪刀 */
 25         for (int i = 0; i < n; i++)
 26         {
 27             if (str[i] == 'J' && s_time > 0)
 28             {
 29                 str[i] = SPACE;
 30                 s_time--;
 31                 score++;
 32             }
 33         }
 34         /* 剪刀 kill 布 */
 35         for (int i = 0; i < n; i++)
 36         {
 37             if (str[i] == 'B' && j_time > 0)
 38             {
 39                 str[i] = SPACE;
 40                 j_time--;
 41                 score++;
 42             }
 43         }
 44         /* 布   kill 石头 */
 45         for (int i = 0; i < n; i++)
 46         {
 47             if (str[i] == 'S' && b_time > 0)
 48             {
 49                 str[i] = SPACE;
 50                 b_time--;
 51                 score++;
 52             }
 53         }
 54         
 55         /* 争取平局 */
 56         /* 石头 */
 57         for (int i = 0; i < n; i++)
 58         {
 59             if (str[i] == 'S' && s_time > 0)
 60             {
 61                 str[i] == SPACE;
 62                 s_time--;
 63             }
 64         }
 65         /* 剪刀 */
 66         for (int i = 0; i < n; i++)
 67         {
 68             if (str[i] == 'J' && j_time > 0)
 69             {
 70                 str[i] == SPACE;
 71                 j_time--;
 72             }
 73         }
 74         /**/
 75         for (int i = 0; i < n; i++)
 76         {
 77             if (str[i] == 'b' && b_time > 0)
 78             {
 79                 str[i] == SPACE;
 80                 b_time--;
 81             }
 82         }
 83         
 84         /* 只能被kill咯 */
 85         /* 剪刀 kill 石头 */
 86         for (int i = 0; i < n; i++)
 87         {
 88             if (str[i] == 'S' && j_time > 0)
 89             {
 90                 str[i] = SPACE;
 91                 j_time--;
 92                 score--;
 93             }
 94         }
 95         /* 布 kill 剪刀 */
 96         for (int i = 0; i < n; i++)
 97         {
 98             if (str[i] == 'J' && b_time > 0)
 99             {
100                 str[i] = SPACE;
101                 b_time--;
102                 score--;
103             }
104         }
105         /* 石头 kill 布 */
106         for (int i = 0; i < n; i++)
107         {
108             if (str[i] == 'B' && s_time > 0)
109             {
110                 str[i] = SPACE;
111                 s_time--;
112                 score--;
113             }
114         }
115         
116         cout << score << endl;
117         
118     }
119     
120     return 0;
121 }
122 // end 
123 // ism 
原文地址:https://www.cnblogs.com/ismdeep/p/2535287.html