#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1024;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int tc;
  cin >> tc;
  while (tc--) {
    int n;
    cin >> n;
    int r, p, s;
    int rb = 0, pb = 0, sb = 0;
    cin >> r >> p >> s;
    string ss;
    cin >> ss;
    string fu = "";
    for (int i = 0; i < ss.size(); i++) {
      switch (ss[i]) {
        case 'R':
          rb++;
          break;
        case 'P':
          pb++;
          break;
        case 'S':
          sb++;
          break;
      }
    }
    vector<int> dis(3);
    dis[0] = r - sb;
    dis[1] = p - rb;
    dis[2] = s - pb;
    int ptos = 0;
    for (int i = 0; i < ss.size(); i++) {
      if (ss[i] == 'S') {
        if (r == 0) {
          if (dis[2] > 0) {
            fu += "S";
            dis[2]--;
            s--;
          } else
            for (int i = 0; i < 3; i++) {
              if (dis[i] > 0) {
                if (i == 0) {
                  r--;
                  dis[i]--;
                  fu += "R";
                }
                if (i == 1) {
                  p--;
                  dis[i]--;
                  fu += "P";
                }
                if (i == 2) {
                  s--;
                  dis[i]--;
                  fu += "S";
                }
              }
            }
        } else {
          r--;
          fu += "R";
          ptos++;
        }
      } else if (ss[i] == 'P') {
        if (s == 0) {
          if (dis[1] > 0) {
            fu += "P";
            dis[1]--;
            p--;
          } else
            for (int i = 0; i < 3; i++) {
              if (dis[i] > 0) {
                if (i == 0) {
                  r--;
                  dis[i]--;
                  fu += "R";
                }
                if (i == 1) {
                  p--;
                  dis[i]--;
                  fu += "P";
                }
                if (i == 2) {
                  s--;
                  dis[i]--;
                  fu += "S";
                }
              }
            }
        } else {
          s--;
          fu += "S";
          ptos++;
        }
      } else {
        if (p == 0) {
          if (dis[0] > 0) {
            fu += "R";
            dis[0]--;
            r--;
          } else
            for (int i = 0; i < 3; i++) {
              if (dis[i] > 0) {
                if (i == 0) {
                  r--;
                  dis[i]--;
                  fu += "R";
                }
                if (i == 1) {
                  p--;
                  dis[i]--;
                  fu += "P";
                }
                if (i == 2) {
                  s--;
                  dis[i]--;
                  fu += "S";
                }
              }
            }
        } else {
          p--;
          fu += "P";
          ptos++;
        }
      }
    }
    if (ptos >= round(n / float(2))) {
      cout << "YES" << endl;
      cout << fu << endl;
    } else {
      cout << "NO" << endl;
    }
  }
  return 0;
}
