QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#689997 | #8046. Rock-Paper-Scissors Pyramid | hhdhh | WA | 22ms | 5348kb | C++23 | 2.0kb | 2024-10-30 19:37:33 | 2024-10-30 19:37:34 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(LL i=(a);i<=(b);i++)
#define rept(i,a,ne) for(LL i=(a);i!=-1;i=ne[i])
#define per(i,a,b) for(LL i=(a);i>=(b);i--)
#define endl '\n'
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<LL,LL> PII;
#define debug(x) cout<<#x<<" :"<<x<<endl;
ULL P=131;
const int N=4e5+10;
int a[N];
bool bo[N];
int op(char a,char b)
{
if(a==b)
return 0;
if(a=='R')
{
if(b=='S')
return 1;
else
return -1;
}
if(a=='S')
{
if(b=='R')
return -1;
else
return 1;
}
if(a=='P')
{
if(b=='R')
return 1;
else
return -1;
}
}
void slove()
{
string s;
cin>>s;
int n=s.size();
s='0'+s;
vector<char>ve;
rep(i,1,n)
{
ve.push_back(s[i]);
while(1)
{
int p=0;
if(ve.size()>1&&ve[ve.size()-2]==ve[ve.size()-1])
ve.pop_back(),p=1;
if (ve.size()>2&&ve[ve.size()-3]==ve[ve.size()-1])
{
char la=ve.back();
ve.pop_back();
char mid=ve.back();
ve.pop_back();
ve.pop_back();
if(op(mid,la)>=0)
ve.push_back(mid);
else
ve.push_back(la);
p=1;
}
if(p==0)break;
}
}
if(ve.size()>1)
{
rep(i,0,ve.size()-2)
while(ve[i]==ve[i+1]);
if(op(ve[0],ve[1])>0)
cout<<ve.front()<<endl;
else
cout<<ve.back()<<endl;
}
else
cout<<ve.back()<<endl;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("test.in","r",stdin);
freopen("test.out","w",stdout);
#endif
LL t=1;
cin>>t;
while(t--)
{
slove();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3788kb
input:
2 SPR SPSRRP
output:
S P
result:
ok 2 lines
Test #2:
score: -100
Wrong Answer
time: 22ms
memory: 5348kb
input:
1 RPPSRPPRSRSRRRPPSPRPRSRRSRRPPPRSPSSRRRSPPPRRRPRRRSSRPSSRPRRPSRRRPRSRPSRPSRRSPPRPRRRSPRSSSRPRRRPPSRRRRPPSRSRRRPRPRPRPPRRSRRPSRPPSRRRSRRSRRSPSRPRPSPSSRRSPSPSRPRRRPPRSRSPSPPRRPRSRPPSSSRPSPRRPSSSPRRSRRSRRSRSPSSSSRSSPPRRRRPRRRSPSRSPRSSPRSPSPRPRRRPPRPPRPPPSRRRRSSPRRSRRRPRRRSSRRPSRPPRSPPSPPPSPSPSPPSSPRRR...
output:
P
result:
wrong answer 1st lines differ - expected: 'R', found: 'P'