Restricted RPS
程序员文章站
2024-03-17 11:24:46
...
原题地址
这道题就是一道模拟题,跟着模拟就行了。
自己条件写的迷糊了,WA了好多次才改正。
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
int t;cin >>t;
while(t--){
int n;cin>>n;
int a , b ,c;cin >>a>>b>>c;
char s[10000]; cin >>s;
map<char, int >mp;
mp['P']=0;
mp['R']=0;
mp['S']=0;
for(int i=0;i<n;i++){
mp[s[i]]++;
}
int sum =0;
sum +=min(a,mp['S'])+min(b,mp['R'])+min(c,mp['P']);
if(sum>=(n+1)/2){
cout<<"YEs"<<endl;
for(int i=0;i<n;i++){
if(s[i]=='R'){
if(b>0)cout<<'P',b--;
else {
if(a-mp['S']>0&&a)cout<<'R',a--;
else if(c-mp['P']>0&&c!=0)cout<<'S',c--;
}mp['R']--;
}
else if(s[i]=='P'){
if(c>0)cout<<'S',c--;
else {
if(b-mp['R']>0&&b!=0)cout<<'P',b--;
else if(a-mp['S']>0&&a!=0)cout<<'R',a--;
}mp['P']--;
}
else if(s[i]=='S'){
if(a>0)cout<<'R',a--;
else {
if(c-mp['P']>0&&c!=0)cout<<'S',c--;
else if(b-mp['R']>0&&b!=0)cout<<'P',b--;
}mp['S']--;
}
}
cout<<endl;
}
else cout<<"No"<<endl;
mp.clear();
}
return 0;
}
上一篇: 解决IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Pyth
下一篇: 原生js实现放大镜效果
推荐阅读
-
Restricted RPS
-
[Tips] Ajax error: Access to restricted URI denied
-
解决小米手机USB安装apk时AS报错:INSTALL_FAILED_USER_RESTRICTED
-
真机调试出现:INSTALL_FAILED_USER_RESTRICTED 安装错误解决方案
-
解决小米手机USB安装apk时AS报错:INSTALL_FAILED_USER_RESTRICTED
-
apache - php 就输出一个hello world,rps为什么这么低?
-
apache - php 就输出一个hello world,rps为什么这么低?
-
Android-遇到SecurityException:user 0 is restricted
-
真机调试出现:INSTALL_FAILED_USER_RESTRICTED 安装错误解决方案