RPSRobots
2016 TCO Algo 3B · 2016-03-24 · by cgy4ever
2016 TCO Algo 3B · 2016-03-24 · by cgy4ever · Advanced Math
Problem Statement
Problem Statement
This task references the traditional game Rock-Paper-Scissors.
In this game each of the two players simultaneously chooses one of those three objects.
Rock beats Scissors, Scissors beat Paper, and Paper beats Rock.
If both players choose the same object, the game is a tie.
We have n Rock-Paper-Scissors robots. Each robot has a fixed string called strategy and a nonnegative integer called state. Each character in the robot's strategy is one of 'R', 'P', and 'S', denoting Rock, Paper, and Scissors, respectively. The strategies of all robots have the same length: k.
Whenever a robot plays one round of Rock-Paper-Scissors, he performs the following steps:
For example, if strategy = "RRS" and state = 10, then the next few moves will be: Rock, Scissors, Rock, Rock, Scissors, Rock, Rock, Scissors ... A match between two robots consists of exactly k consecutive rounds. The result of the match is the pair (number of rounds won by the first robot, number of rounds won by the second robot). Sometimes the result will depend on the initial states of both robots, and in other cases the result will be same regardless of their states. A pair of robots is called attuned if the result of their match is independent from their states.
For example, if two robots have strategies "RPS" and "RSP", the result of their match will be (1,1), regardless of their states at the beginning of the match. Hence, this pair of robots is attuned. On the other hand, consider two robots with strategies "RPS" and "RPS". The result of this match can be (0,0), (3,0), or (0,3) based on the robots' initial states. Hence, this second pair of robots is not attuned.
You are given a set of robots in a format that is described below. A non-empty subset of these robots is called attuned if all pairs of robots in the subset are attuned. (Note that trivially all subsets of size 1 are attuned as well.) Please compute and return the number of attuned subsets of robots, modulo 10^9 + 7.
You are given the following data:
Use the pseudocode below to generate the strategies of all robots.
We have n Rock-Paper-Scissors robots. Each robot has a fixed string called strategy and a nonnegative integer called state. Each character in the robot's strategy is one of 'R', 'P', and 'S', denoting Rock, Paper, and Scissors, respectively. The strategies of all robots have the same length: k.
Whenever a robot plays one round of Rock-Paper-Scissors, he performs the following steps:
- Use strategy[state modulo k] as his choice in the round of the game.
- Increment state by 1.
For example, if strategy = "RRS" and state = 10, then the next few moves will be: Rock, Scissors, Rock, Rock, Scissors, Rock, Rock, Scissors ... A match between two robots consists of exactly k consecutive rounds. The result of the match is the pair (number of rounds won by the first robot, number of rounds won by the second robot). Sometimes the result will depend on the initial states of both robots, and in other cases the result will be same regardless of their states. A pair of robots is called attuned if the result of their match is independent from their states.
For example, if two robots have strategies "RPS" and "RSP", the result of their match will be (1,1), regardless of their states at the beginning of the match. Hence, this pair of robots is attuned. On the other hand, consider two robots with strategies "RPS" and "RPS". The result of this match can be (0,0), (3,0), or (0,3) based on the robots' initial states. Hence, this second pair of robots is not attuned.
You are given a set of robots in a format that is described below. A non-empty subset of these robots is called attuned if all pairs of robots in the subset are attuned. (Note that trivially all subsets of size 1 are attuned as well.) Please compute and return the number of attuned subsets of robots, modulo 10^9 + 7.
You are given the following data:
- The
int n: the number of robots. - The
String[] r: the strategies of the first few robots. The value k can be determined as the length of any of these strategies. - The
int s seed, pR, pP, and pS: parameters for a pseudorandom generator used to produce the rest of the input.
Use the pseudocode below to generate the strategies of all robots.
long now = seed;
long a = 22222223;
long b = 12345678;
long mod = 1000000000 + 7;
String[] input = new String[n];
for(int i = 0; i < r.length; i++)
input[i] = r[i];
for(int i = r.length; i < n; i++)
{
String s = "";
for(int j = 0; j < r[0].length(); j++)
{
if((now % (pR + pP + pS)) < pR)
s += "R";
else if((now % (pR + pP + pS)) < pR + pP)
s += "P";
else
s += "S";
now = (now * a + b) % mod;
}
input[i] = s;
}
Notes
- The author's solution does not depend on any properties of the pseudorandom generator. It would solve any input of allowed size within the given limits.
Constraints
- n will be between 1 and 100,000, inclusive.
- k will be between 1 and 18, inclusive.
- r will contain between 1 and min(n, 1000) elements, inclusive.
- Each element of r will contain exactly k elements.
- Each character in r will be one of 'R', 'P', 'S'.
- seed will be between 0 and 1,000,000,006, inclusive.
- pR, pP, pS will be between 0 and 1,000, inclusive.
- pR + pP + pS > 0.
Examples
0)
100000
{"RRRRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRRRP","RRRRRRRRRRRRRRRRPP","RRRRRRRRRRRRRRRRPS","RRRRRRRRRRRRRRRRSP","RRRRRRRRRRRRRRRPRS","RRRRRRRRRRRRRRRPPP","RRRRRRRRRRRRRRRSRP","RRRRRRRRRRRRRRPRRP","RRRRRRRRRRRRRRPRRS","RRRRRRRRRRRRRRPRPS","RRRRRRRRRRRRRRPPSS","RRRRRRRRRRRRRRSRRP","RRRRRRRRRRRRRRSRSP","RRRRRRRRRRRRRRSSPP","RRRRRRRRRRRRRPRPRP","RRRRRRRRRRRRRPPRSS","RRRRRRRRRRRRRPSRPS","RRRRRRRRRRRRRSPRSP","RRRRRRRRRRRRRSSRPP","RRRRRRRRRRRRPPPPPP","RRRRRRRRRRRRPPPSSS","RRRRRRRRRRRRSSSPPP","RRRRRRRRRRRPRRRRRS","RRRRRRRRRRRPRRPRRP","RRRRRRRRRRRPRPPRSP","RRRRRRRRRRRPRPPPRP","RRRRRRRRRRRPPRRRSS","RRRRRRRRRRRPPRPSSP","RRRRRRRRRRRPPPRSSS","RRRRRRRRRRRPSRRRPS","RRRRRRRRRRRPSRPPRP","RRRRRRRRRRRPSRPPPS","RRRRRRRRRRRPSSRPPS","RRRRRRRRRRRSRRRRRP","RRRRRRRRRRRSPPRSSP","RRRRRRRRRRRSSSRPPP","RRRRRRRRRRPRRPPRPS","RRRRRRRRRRPRPSPSRS","RRRRRRRRRRPPRRRRSS","RRRRRRRRRRPPRPPRPP","RRRRRRRRRRPPPRRPPP","RRRRRRRRRRPSRPPPPS","RRRRRRRRRRPSRPSRPS","RRRRRRRRRRPSSPSPPS","RRRRRRRRRRSRRSSRSP","RRRRRRRRRRSRSPSPRP","RRRRRRRRRRSPRSPRSP","RRRRRRRRRRSPRSSSSP","RRRRRRRRRRSPPSPSSP","RRRRRRRRRRSSRRRRPP","RRRRRRRRRPRRRSSSPP","RRRRRRRRRPRPPPSPRS","RRRRRRRRRPRPSPPSRP","RRRRRRRRRPRSPRSPRS","RRRRRRRRRPPPRRRSSS","RRRRRRRRRPPPPPPPPP","RRRRRRRRRPPSSPSRPS","RRRRRRRRRPPSSSRRRP","RRRRRRRRRSRPSRPSRP","RRRRRRRRRSPRSPSSPP","RRRRRRRRRSSSRRRPPP","RRRRRRRRPRRRRRRRRP","RRRRRRRRPRRRRRPRRS","RRRRRRRRPRRPRRSRRS","RRRRRRRRPRPRRRPRSS","RRRRRRRRPRPPSPSPPS","RRRRRRRRPRPSPPPSPS","RRRRRRRRPRSRRRRRPP","RRRRRRRRPRSPSSSPSS","RRRRRRRRPRSSPSPSSS","RRRRRRRRPPRPPSSPPS","RRRRRRRRPPPRRRRSSP","RRRRRRRRPPSSPRPPPS","RRRRRRRRPSRPSSSSPS","RRRRRRRRPSSRRRRPPP","RRRRRRRRSRRSRRPRRP","RRRRRRRRSRPSPPPSPP","RRRRRRRRSRSRRRSRPP","RRRRRRRPRRRPRPRRSS","RRRRRRRPRPRPRSRSRS","RRRRRRRPRPPPPPPPRP","RRRRRRRPPRRPRRSRPS","RRRRRRRPPPRRRRPSPS","RRRRRRRPPPRRRPRSSP","RRRRRRRPPPSRRRPSSS","RRRRRRRPSRRRRRRRPS","RRRRRRRPSRRSRRPRPP","RRRRRRRPSSRPRRRPPP","RRRRRRRSRRRSRSRRPP","RRRRRRRSRSRSRPRPRP","RRRRRRRSPRRRRRRRSP","RRRRRRRSPSPRRRRPPP","RRRRRRRSSSPRRRSPPP","RRRRRRPRPRPRPRRSSP","RRRRRRPRPRPSPRRSSS","RRRRRRPPRRSPPRRSSS","RRRRRRPPPRRRRRRPPP","RRRRRRPPPRRRPPPSSS","RRRRRRPPPPPPSSSSSS","RRRRRRPPPPPSPSSSSS","RRRRRRPPPPPSSPSSSS","RRRRRRPPPPPSSSPSSS","RRRRRRPPPPPSSSSSSP","RRRRRRPPPPSSSPPSSS","RRRRRRPPPSSSPPPSSS","RRRRRRPPSRPRRSRPSS","RRRRRRPPSPRRSRRSPS","RRRRRRPPSPPPSSSSSP","RRRRRRPPSPPSPSSPSS","RRRRRRPPSSSSPPPSSP","RRRRRRPSRRPSRRRPPP","RRRRRRPSPSPSPSPSPS","RRRRRRPSSRRPRPRPRP","RRRRRRPSSRRSRRPPSP","RRRRRRPSSRSRRPRPPS","RRRRRRPSSPPPSSSSPP","RRRRRRSSRRPSSRRPPP","RRRRRRSSSRRRSSSPPP","RRRRRRSSSSSSPPPPPP","RRRRRPRRRRRPRRRRRP","RRRRRPRRPPRPRRSSRP","RRRRRPRRSRRRRRPRRS","RRRRRPRRSSRPRRPPRP","RRRRRPRPRRRPRRRRPP","RRRRRPRPRPRPRSPSRS","RRRRRPRPRPPPRSRSSP","RRRRRPRPPRRPRSSRRP","RRRRRPRPPPPSSPSSSS","RRRRRPRPPPSPPSSSSS","RRRRRPRPPPSPSSSPSS","RRRRRPRPPPSPSSSSSP","RRRRRPRPPSPPSSSSSP","RRRRRPRPPSPSPSSSPS","RRRRRPRPPSPSSSPSPS","RRRRRPRPPSSPSPPSSS","RRRRRPRPSPPSPPSPRS","RRRRRPRSRSRSRPPPRP","RRRRRPRSRSSPRPRPPP","RRRRRPRSSRRPRPPRRP","RRRRRPPRRPPPSRRSSP","RRRRRPPRPPPSSSSPSS","RRRRRPPRPPSPPSSSSS","RRRRRPPRPPSSPPSSSS","RRRRRPPRPSPPRRSSSP","RRRRRPPRPSPPSPSSSS","RRRRRPPRSSPPSSSSPP","RRRRRPPRSSSPPSPSSP","RRRRRPPPRPSPSPSSSS","RRRRRPPPPPSSSRPSSS","RRRRRPPPPSPSRSPSSS","RRRRRPPPSRPSSSSPPS","RRRRRPPPSPPRSSPSSS","RRRRRPPSRPPSSSPSPS","RRRRRPPSPSSSPPRSPS","RRRRRPSRRSSPPRRPPP","RRRRRPSPRPPSSSSPSP","RRRRRPSSRRPSSRPPPP","RRRRRPSSPSPPSSSRPP","RRRRRSRRPRRRRRSRRP","RRRRRSRPSPPSPPSPRP","RRRRRSSSPRSSSPPPPP","RRRRRSSSPSRSPSPPPP","RRRRRSSSPSSRPPSPPP","RRRRPRRPPPSRRPPSSS","RRRRPRRSSSPRRPSPPP","RRRRPRPRPRPRPSPSRS","RRRRPRPSPSPSPSPSRS","RRRRPRSRPSPSPSPPSS","RRRRPPRRRRPPRRRRPP","RRRRPPRRSRPRRRPRPS","RRRRPPRPSRPSPPSSSS","RRRRPPRPSPPSSPSRSS","RRRRPPRSPRSPPSPSSS","RRRRPPRSPPSPSSPRSS","RRRRPPRSSRSPPSPSSP","RRRRPPRSSPPSSPSRPS","RRRRPPPRRRPPRRRPPP","RRRRPPPRRRPPPPRSSP","RRRRPPPRRSSPPPSSSS","RRRRPPPRSSPPRPSSSS","RRRRPPPPRSSPRPRSSP","RRRRPPPPRSSPPRSSSS","RRRRPPPSRSPPRSPSSS","RRRRPPPSPSSPRRSSSP","RRRRPPSRRPPSRRPPPP","RRRRPPSRRPPSSSPPSS","RRRRPSRRRRPSRRRRPS","RRRRPSRRPRPRRRSRPP","RRRRPSRPPRPSSSSPPS","RRRRPSRPPPPSRSSSPS","RRRRPSRPSRPSSSSPPP","RRRRPSRSSSPSRPPPPS","RRRRPSPRPPPSSRSSPS","RRRRPSPPSPRRSPSSPS","RRRRPSSRRPSSSSPPPP","RRRRPSSRPRPSSRPPPP","RRRRPSSRSRSPSPSPPP","RRRRPSSRSPSSRPPPPS","RRRRPSSRSSPSPRPPPS","RRRRPSSPSSRRPPSPPS","RRRRSRPRSPSPSPSSPP","RRRRSRSRSRSRSPSPRP","RRRRSRSPSPSPSPSPRP","RRRRSPRRRRSPRRRRSP","RRRRSPRPPRSPSSSPSP","RRRRSPRPPPSPRSSSSP","RRRRSPRSPSSPPSSRPP","RRRRSPRSSSSPRPPPSP","RRRRSPSSRRPSSSPPPP","RRRRSSRPSSPSPPSRPP","RRRRSSRSPRSPSSPPPP","RRRPRPRPSPRSPSRSRS","RRRPRPPSSPRSPPSSRS","RRRPRPSRPPPSSRPSSS","RRRPRPSRSSRPSPPSSP","RRRPRPSPRPSPSRPSSS","RRRPRPSPRSRPRSPSRS","RRRPRSRRRPRSRRRPRS","RRRPRSRPRPRSRRRPPS","RRRPRSRSRSRSPPSPRP","RRRPRSRSSSRPPSSPPP","RRRPRSPRPPPSSRSPSS","RRRPRSPRSPSSSPSPRP","RRRPRSSRSPSSPRPPPS","RRRPPRRRPPPRRPPPSS","RRRPPRRRSSPPPRRPPP","RRRPPRRPPPSSRPRPSS","RRRPPRRPPPSSSRPSSS","RRRPPRSRPPPSSPRSSS","RRRPPPRRRPPPRRRPPP","RRRPPPRRSPPRRRPPPS","RRRPPPSSSRRRPPPSSS","RRRPPSRRPPPRRRSPPP","RRRPPSRSRPRSRPRPSS","RRRPPSPSSRRRPPSPSS","RRRPPSSSPRRRPPSSSP","RRRPSRRSSSPRPSSPPP","RRRPSSRPRPRSRSRPPS","RRRSRPRRRSRPRRRSRP","RRRSRPRPRSRPRRRSPP","RRRSRPRSRSRSSPPPRP","RRRSRPPRPSPPSRSSSP","RRRSRPSRPSSPSPSPRP","RRRSRPSRSSSPPRPSPP","RRRSRSPRSSSPPRSPPP","RRRSPRRRSSSPPSSPPP","RRRSPRPRSSPRPRSPPP","RRRSPPRSRSRPRPRSSP","RRRSSPRPRSRPRSRSPP","RRRSSSPPPRRRSSSPPP","RRPRRPRRPRRPRRPRRP","RRPRRPRRPRPSRPSRPS","RRPRRPRRPPSSPSSPSS","RRPRRPRRPSPSSPSSPS","RRPRRPRRPSSPSSPSSP","RRPRRPRRSRSSRSSRSP","RRPRRPRRSPSSPSSPSP","RRPRRPRRSSPSSPSSPP","RRPRRPRPSRPSSPSSPS","RRPRRPRSPRSPPSSPSS","RRPRRPRSPSSPSSPSRP","RRPRRPRSSPSPRSSPSP","RRPRRPSRPSPSSRPSPS","RRPRPSRRPRPSRRPRPS","RRPRPSPRPSPSRSPSRS","RRPRPSPSPRRSPSPSRS","RRPRPSSPSRRPRPSSPS","RRPRSPPSSRRPRSPPSS","RRPPSSRRPPSSRRPPSS","RRPSRSRSPSPSPRPRPS","RRPSRSPSPRRSPSPRPS","RRPSPSRRPSPSRRPSPS","RRPSSPRRPSSPRRPSSP","RRSRSPRRSRSPRRSRSP","RRSPSPRRSPSPRRSPSP","RRSSPPRRSSPPRRSSPP","RPRPRPRPRPRPRPRPRP","RPRSPSRPRSPSRPRSPS","RPSRPSRPSRPSRPSRPS","RSPRSPRSPRSPRSPRSP"}
1213
1
1
1
Returns: 241395
1)
100000
{"RRRRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRRRP","RRRRRRRRRRRRRRRRPP","RRRRRRRRRRRRRRRRPS","RRRRRRRRRRRRRRRRSP","RRRRRRRRRRRRRRRPRS","RRRRRRRRRRRRRRRPPP","RRRRRRRRRRRRRRRSRP","RRRRRRRRRRRRRRPRRP","RRRRRRRRRRRRRRPRRS","RRRRRRRRRRRRRRPRPS","RRRRRRRRRRRRRRPPSS","RRRRRRRRRRRRRRSRRP","RRRRRRRRRRRRRRSRSP","RRRRRRRRRRRRRRSSPP","RRRRRRRRRRRRRPRPRP","RRRRRRRRRRRRRPPRSS","RRRRRRRRRRRRRPSRPS","RRRRRRRRRRRRRSPRSP","RRRRRRRRRRRRRSSRPP","RRRRRRRRRRRRPPPPPP","RRRRRRRRRRRRPPPSSS","RRRRRRRRRRRRSSSPPP","RRRRRRRRRRRPRRRRRS","RRRRRRRRRRRPRRPRRP","RRRRRRRRRRRPRPPRSP","RRRRRRRRRRRPRPPPRP","RRRRRRRRRRRPPRRRSS","RRRRRRRRRRRPPRPSSP","RRRRRRRRRRRPPPRSSS","RRRRRRRRRRRPSRRRPS","RRRRRRRRRRRPSRPPRP","RRRRRRRRRRRPSRPPPS","RRRRRRRRRRRPSSRPPS","RRRRRRRRRRRSRRRRRP","RRRRRRRRRRRSPPRSSP","RRRRRRRRRRRSSSRPPP","RRRRRRRRRRPRRPPRPS","RRRRRRRRRRPRPSPSRS","RRRRRRRRRRPPRRRRSS","RRRRRRRRRRPPRPPRPP","RRRRRRRRRRPPPRRPPP","RRRRRRRRRRPSRPPPPS","RRRRRRRRRRPSRPSRPS","RRRRRRRRRRPSSPSPPS","RRRRRRRRRRSRRSSRSP","RRRRRRRRRRSRSPSPRP","RRRRRRRRRRSPRSPRSP","RRRRRRRRRRSPRSSSSP","RRRRRRRRRRSPPSPSSP","RRRRRRRRRRSSRRRRPP","RRRRRRRRRPRRRSSSPP","RRRRRRRRRPRPPPSPRS","RRRRRRRRRPRPSPPSRP","RRRRRRRRRPRSPRSPRS","RRRRRRRRRPPPRRRSSS","RRRRRRRRRPPPPPPPPP","RRRRRRRRRPPSSPSRPS","RRRRRRRRRPPSSSRRRP","RRRRRRRRRSRPSRPSRP","RRRRRRRRRSPRSPSSPP","RRRRRRRRRSSSRRRPPP","RRRRRRRRPRRRRRRRRP","RRRRRRRRPRRRRRPRRS","RRRRRRRRPRRPRRSRRS","RRRRRRRRPRPRRRPRSS","RRRRRRRRPRPPSPSPPS","RRRRRRRRPRPSPPPSPS","RRRRRRRRPRSRRRRRPP","RRRRRRRRPRSPSSSPSS","RRRRRRRRPRSSPSPSSS","RRRRRRRRPPRPPSSPPS","RRRRRRRRPPPRRRRSSP","RRRRRRRRPPSSPRPPPS","RRRRRRRRPSRPSSSSPS","RRRRRRRRPSSRRRRPPP","RRRRRRRRSRRSRRPRRP","RRRRRRRRSRPSPPPSPP","RRRRRRRRSRSRRRSRPP","RRRRRRRPRRRPRPRRSS","RRRRRRRPRPRPRSRSRS","RRRRRRRPRPPPPPPPRP","RRRRRRRPPRRPRRSRPS","RRRRRRRPPPRRRRPSPS","RRRRRRRPPPRRRPRSSP","RRRRRRRPPPSRRRPSSS","RRRRRRRPSRRRRRRRPS","RRRRRRRPSRRSRRPRPP","RRRRRRRPSSRPRRRPPP","RRRRRRRSRRRSRSRRPP","RRRRRRRSRSRSRPRPRP","RRRRRRRSPRRRRRRRSP","RRRRRRRSPSPRRRRPPP","RRRRRRRSSSPRRRSPPP","RRRRRRPRPRPRPRRSSP","RRRRRRPRPRPSPRRSSS","RRRRRRPPRRSPPRRSSS","RRRRRRPPPRRRRRRPPP","RRRRRRPPPRRRPPPSSS","RRRRRRPPPPPPSSSSSS","RRRRRRPPPPPSPSSSSS","RRRRRRPPPPPSSPSSSS","RRRRRRPPPPPSSSPSSS","RRRRRRPPPPPSSSSSSP","RRRRRRPPPPSSSPPSSS","RRRRRRPPPSSSPPPSSS","RRRRRRPPSRPRRSRPSS","RRRRRRPPSPRRSRRSPS","RRRRRRPPSPPPSSSSSP","RRRRRRPPSPPSPSSPSS","RRRRRRPPSSSSPPPSSP","RRRRRRPSRRPSRRRPPP","RRRRRRPSPSPSPSPSPS","RRRRRRPSSRRPRPRPRP","RRRRRRPSSRRSRRPPSP","RRRRRRPSSRSRRPRPPS","RRRRRRPSSPPPSSSSPP","RRRRRRSSRRPSSRRPPP","RRRRRRSSSRRRSSSPPP","RRRRRRSSSSSSPPPPPP","RRRRRPRRRRRPRRRRRP","RRRRRPRRPPRPRRSSRP","RRRRRPRRSRRRRRPRRS","RRRRRPRRSSRPRRPPRP","RRRRRPRPRRRPRRRRPP","RRRRRPRPRPRPRSPSRS","RRRRRPRPRPPPRSRSSP","RRRRRPRPPRRPRSSRRP","RRRRRPRPPPPSSPSSSS","RRRRRPRPPPSPPSSSSS","RRRRRPRPPPSPSSSPSS","RRRRRPRPPPSPSSSSSP","RRRRRPRPPSPPSSSSSP","RRRRRPRPPSPSPSSSPS","RRRRRPRPPSPSSSPSPS","RRRRRPRPPSSPSPPSSS","RRRRRPRPSPPSPPSPRS","RRRRRPRSRSRSRPPPRP","RRRRRPRSRSSPRPRPPP","RRRRRPRSSRRPRPPRRP","RRRRRPPRRPPPSRRSSP","RRRRRPPRPPPSSSSPSS","RRRRRPPRPPSPPSSSSS","RRRRRPPRPPSSPPSSSS","RRRRRPPRPSPPRRSSSP","RRRRRPPRPSPPSPSSSS","RRRRRPPRSSPPSSSSPP","RRRRRPPRSSSPPSPSSP","RRRRRPPPRPSPSPSSSS","RRRRRPPPPPSSSRPSSS","RRRRRPPPPSPSRSPSSS","RRRRRPPPSRPSSSSPPS","RRRRRPPPSPPRSSPSSS","RRRRRPPSRPPSSSPSPS","RRRRRPPSPSSSPPRSPS","RRRRRPSRRSSPPRRPPP","RRRRRPSPRPPSSSSPSP","RRRRRPSSRRPSSRPPPP","RRRRRPSSPSPPSSSRPP","RRRRRSRRPRRRRRSRRP","RRRRRSRPSPPSPPSPRP","RRRRRSSSPRSSSPPPPP","RRRRRSSSPSRSPSPPPP","RRRRRSSSPSSRPPSPPP","RRRRPRRPPPSRRPPSSS","RRRRPRRSSSPRRPSPPP","RRRRPRPRPRPRPSPSRS","RRRRPRPSPSPSPSPSRS","RRRRPRSRPSPSPSPPSS","RRRRPPRRRRPPRRRRPP","RRRRPPRRSRPRRRPRPS","RRRRPPRPSRPSPPSSSS","RRRRPPRPSPPSSPSRSS","RRRRPPRSPRSPPSPSSS","RRRRPPRSPPSPSSPRSS","RRRRPPRSSRSPPSPSSP","RRRRPPRSSPPSSPSRPS","RRRRPPPRRRPPRRRPPP","RRRRPPPRRRPPPPRSSP","RRRRPPPRRSSPPPSSSS","RRRRPPPRSSPPRPSSSS","RRRRPPPPRSSPRPRSSP","RRRRPPPPRSSPPRSSSS","RRRRPPPSRSPPRSPSSS","RRRRPPPSPSSPRRSSSP","RRRRPPSRRPPSRRPPPP","RRRRPPSRRPPSSSPPSS","RRRRPSRRRRPSRRRRPS","RRRRPSRRPRPRRRSRPP","RRRRPSRPPRPSSSSPPS","RRRRPSRPPPPSRSSSPS","RRRRPSRPSRPSSSSPPP","RRRRPSRSSSPSRPPPPS","RRRRPSPRPPPSSRSSPS","RRRRPSPPSPRRSPSSPS","RRRRPSSRRPSSSSPPPP","RRRRPSSRPRPSSRPPPP","RRRRPSSRSRSPSPSPPP","RRRRPSSRSPSSRPPPPS","RRRRPSSRSSPSPRPPPS","RRRRPSSPSSRRPPSPPS","RRRRSRPRSPSPSPSSPP","RRRRSRSRSRSRSPSPRP","RRRRSRSPSPSPSPSPRP","RRRRSPRRRRSPRRRRSP","RRRRSPRPPRSPSSSPSP","RRRRSPRPPPSPRSSSSP","RRRRSPRSPSSPPSSRPP","RRRRSPRSSSSPRPPPSP","RRRRSPSSRRPSSSPPPP","RRRRSSRPSSPSPPSRPP","RRRRSSRSPRSPSSPPPP","RRRPRPRPSPRSPSRSRS","RRRPRPPSSPRSPPSSRS","RRRPRPSRPPPSSRPSSS","RRRPRPSRSSRPSPPSSP","RRRPRPSPRPSPSRPSSS","RRRPRPSPRSRPRSPSRS","RRRPRSRRRPRSRRRPRS","RRRPRSRPRPRSRRRPPS","RRRPRSRSRSRSPPSPRP","RRRPRSRSSSRPPSSPPP","RRRPRSPRPPPSSRSPSS","RRRPRSPRSPSSSPSPRP","RRRPRSSRSPSSPRPPPS","RRRPPRRRPPPRRPPPSS","RRRPPRRRSSPPPRRPPP","RRRPPRRPPPSSRPRPSS","RRRPPRRPPPSSSRPSSS","RRRPPRSRPPPSSPRSSS","RRRPPPRRRPPPRRRPPP","RRRPPPRRSPPRRRPPPS","RRRPPPSSSRRRPPPSSS","RRRPPSRRPPPRRRSPPP","RRRPPSRSRPRSRPRPSS","RRRPPSPSSRRRPPSPSS","RRRPPSSSPRRRPPSSSP","RRRPSRRSSSPRPSSPPP","RRRPSSRPRPRSRSRPPS","RRRSRPRRRSRPRRRSRP","RRRSRPRPRSRPRRRSPP","RRRSRPRSRSRSSPPPRP","RRRSRPPRPSPPSRSSSP","RRRSRPSRPSSPSPSPRP","RRRSRPSRSSSPPRPSPP","RRRSRSPRSSSPPRSPPP","RRRSPRRRSSSPPSSPPP","RRRSPRPRSSPRPRSPPP","RRRSPPRSRSRPRPRSSP","RRRSSPRPRSRPRSRSPP","RRRSSSPPPRRRSSSPPP","RRPRRPRRPRRPRRPRRP","RRPRRPRRPRPSRPSRPS","RRPRRPRRPPSSPSSPSS","RRPRRPRRPSPSSPSSPS","RRPRRPRRPSSPSSPSSP","RRPRRPRRSRSSRSSRSP","RRPRRPRRSPSSPSSPSP","RRPRRPRRSSPSSPSSPP","RRPRRPRPSRPSSPSSPS","RRPRRPRSPRSPPSSPSS","RRPRRPRSPSSPSSPSRP","RRPRRPRSSPSPRSSPSP","RRPRRPSRPSPSSRPSPS","RRPRPSRRPRPSRRPRPS","RRPRPSPRPSPSRSPSRS","RRPRPSPSPRRSPSPSRS","RRPRPSSPSRRPRPSSPS","RRPRSPPSSRRPRSPPSS","RRPPSSRRPPSSRRPPSS","RRPSRSRSPSPSPRPRPS","RRPSRSPSPRRSPSPRPS","RRPSPSRRPSPSRRPSPS","RRPSSPRRPSSPRRPSSP","RRSRSPRRSRSPRRSRSP","RRSPSPRRSPSPRRSPSP","RRSSPPRRSSPPRRSSPP","RPRPRPRPRPRPRPRPRP","RPRSPSRPRSPSRPRSPS","RPSRPSRPSRPSRPSRPS","RSPRSPRSPRSPRSPRSP"}
4127872
1
1000
1000
Returns: 659597
2)
100000
{"RRRRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRRRP","RRRRRRRRRRRRRRRRPP","RRRRRRRRRRRRRRRRPS","RRRRRRRRRRRRRRRRSP","RRRRRRRRRRRRRRRPRS","RRRRRRRRRRRRRRRPPP","RRRRRRRRRRRRRRRSRP","RRRRRRRRRRRRRRPRRP","RRRRRRRRRRRRRRPRRS","RRRRRRRRRRRRRRPRPS","RRRRRRRRRRRRRRPPSS","RRRRRRRRRRRRRRSRRP","RRRRRRRRRRRRRRSRSP","RRRRRRRRRRRRRRSSPP","RRRRRRRRRRRRRPRPRP","RRRRRRRRRRRRRPPRSS","RRRRRRRRRRRRRPSRPS","RRRRRRRRRRRRRSPRSP","RRRRRRRRRRRRRSSRPP","RRRRRRRRRRRRPPPPPP","RRRRRRRRRRRRPPPSSS","RRRRRRRRRRRRSSSPPP","RRRRRRRRRRRPRRRRRS","RRRRRRRRRRRPRRPRRP","RRRRRRRRRRRPRPPRSP","RRRRRRRRRRRPRPPPRP","RRRRRRRRRRRPPRRRSS","RRRRRRRRRRRPPRPSSP","RRRRRRRRRRRPPPRSSS","RRRRRRRRRRRPSRRRPS","RRRRRRRRRRRPSRPPRP","RRRRRRRRRRRPSRPPPS","RRRRRRRRRRRPSSRPPS","RRRRRRRRRRRSRRRRRP","RRRRRRRRRRRSPPRSSP","RRRRRRRRRRRSSSRPPP","RRRRRRRRRRPRRPPRPS","RRRRRRRRRRPRPSPSRS","RRRRRRRRRRPPRRRRSS","RRRRRRRRRRPPRPPRPP","RRRRRRRRRRPPPRRPPP","RRRRRRRRRRPSRPPPPS","RRRRRRRRRRPSRPSRPS","RRRRRRRRRRPSSPSPPS","RRRRRRRRRRSRRSSRSP","RRRRRRRRRRSRSPSPRP","RRRRRRRRRRSPRSPRSP","RRRRRRRRRRSPRSSSSP","RRRRRRRRRRSPPSPSSP","RRRRRRRRRRSSRRRRPP","RRRRRRRRRPRRRSSSPP","RRRRRRRRRPRPPPSPRS","RRRRRRRRRPRPSPPSRP","RRRRRRRRRPRSPRSPRS","RRRRRRRRRPPPRRRSSS","RRRRRRRRRPPPPPPPPP","RRRRRRRRRPPSSPSRPS","RRRRRRRRRPPSSSRRRP","RRRRRRRRRSRPSRPSRP","RRRRRRRRRSPRSPSSPP","RRRRRRRRRSSSRRRPPP","RRRRRRRRPRRRRRRRRP","RRRRRRRRPRRRRRPRRS","RRRRRRRRPRRPRRSRRS","RRRRRRRRPRPRRRPRSS","RRRRRRRRPRPPSPSPPS","RRRRRRRRPRPSPPPSPS","RRRRRRRRPRSRRRRRPP","RRRRRRRRPRSPSSSPSS","RRRRRRRRPRSSPSPSSS","RRRRRRRRPPRPPSSPPS","RRRRRRRRPPPRRRRSSP","RRRRRRRRPPSSPRPPPS","RRRRRRRRPSRPSSSSPS","RRRRRRRRPSSRRRRPPP","RRRRRRRRSRRSRRPRRP","RRRRRRRRSRPSPPPSPP","RRRRRRRRSRSRRRSRPP","RRRRRRRPRRRPRPRRSS","RRRRRRRPRPRPRSRSRS","RRRRRRRPRPPPPPPPRP","RRRRRRRPPRRPRRSRPS","RRRRRRRPPPRRRRPSPS","RRRRRRRPPPRRRPRSSP","RRRRRRRPPPSRRRPSSS","RRRRRRRPSRRRRRRRPS","RRRRRRRPSRRSRRPRPP","RRRRRRRPSSRPRRRPPP","RRRRRRRSRRRSRSRRPP","RRRRRRRSRSRSRPRPRP","RRRRRRRSPRRRRRRRSP","RRRRRRRSPSPRRRRPPP","RRRRRRRSSSPRRRSPPP","RRRRRRPRPRPRPRRSSP","RRRRRRPRPRPSPRRSSS","RRRRRRPPRRSPPRRSSS","RRRRRRPPPRRRRRRPPP","RRRRRRPPPRRRPPPSSS","RRRRRRPPPPPPSSSSSS","RRRRRRPPPPPSPSSSSS","RRRRRRPPPPPSSPSSSS","RRRRRRPPPPPSSSPSSS","RRRRRRPPPPPSSSSSSP","RRRRRRPPPPSSSPPSSS","RRRRRRPPPSSSPPPSSS","RRRRRRPPSRPRRSRPSS","RRRRRRPPSPRRSRRSPS","RRRRRRPPSPPPSSSSSP","RRRRRRPPSPPSPSSPSS","RRRRRRPPSSSSPPPSSP","RRRRRRPSRRPSRRRPPP","RRRRRRPSPSPSPSPSPS","RRRRRRPSSRRPRPRPRP","RRRRRRPSSRRSRRPPSP","RRRRRRPSSRSRRPRPPS","RRRRRRPSSPPPSSSSPP","RRRRRRSSRRPSSRRPPP","RRRRRRSSSRRRSSSPPP","RRRRRRSSSSSSPPPPPP","RRRRRPRRRRRPRRRRRP","RRRRRPRRPPRPRRSSRP","RRRRRPRRSRRRRRPRRS","RRRRRPRRSSRPRRPPRP","RRRRRPRPRRRPRRRRPP","RRRRRPRPRPRPRSPSRS","RRRRRPRPRPPPRSRSSP","RRRRRPRPPRRPRSSRRP","RRRRRPRPPPPSSPSSSS","RRRRRPRPPPSPPSSSSS","RRRRRPRPPPSPSSSPSS","RRRRRPRPPPSPSSSSSP","RRRRRPRPPSPPSSSSSP","RRRRRPRPPSPSPSSSPS","RRRRRPRPPSPSSSPSPS","RRRRRPRPPSSPSPPSSS","RRRRRPRPSPPSPPSPRS","RRRRRPRSRSRSRPPPRP","RRRRRPRSRSSPRPRPPP","RRRRRPRSSRRPRPPRRP","RRRRRPPRRPPPSRRSSP","RRRRRPPRPPPSSSSPSS","RRRRRPPRPPSPPSSSSS","RRRRRPPRPPSSPPSSSS","RRRRRPPRPSPPRRSSSP","RRRRRPPRPSPPSPSSSS","RRRRRPPRSSPPSSSSPP","RRRRRPPRSSSPPSPSSP","RRRRRPPPRPSPSPSSSS","RRRRRPPPPPSSSRPSSS","RRRRRPPPPSPSRSPSSS","RRRRRPPPSRPSSSSPPS","RRRRRPPPSPPRSSPSSS","RRRRRPPSRPPSSSPSPS","RRRRRPPSPSSSPPRSPS","RRRRRPSRRSSPPRRPPP","RRRRRPSPRPPSSSSPSP","RRRRRPSSRRPSSRPPPP","RRRRRPSSPSPPSSSRPP","RRRRRSRRPRRRRRSRRP","RRRRRSRPSPPSPPSPRP","RRRRRSSSPRSSSPPPPP","RRRRRSSSPSRSPSPPPP","RRRRRSSSPSSRPPSPPP","RRRRPRRPPPSRRPPSSS","RRRRPRRSSSPRRPSPPP","RRRRPRPRPRPRPSPSRS","RRRRPRPSPSPSPSPSRS","RRRRPRSRPSPSPSPPSS","RRRRPPRRRRPPRRRRPP","RRRRPPRRSRPRRRPRPS","RRRRPPRPSRPSPPSSSS","RRRRPPRPSPPSSPSRSS","RRRRPPRSPRSPPSPSSS","RRRRPPRSPPSPSSPRSS","RRRRPPRSSRSPPSPSSP","RRRRPPRSSPPSSPSRPS","RRRRPPPRRRPPRRRPPP","RRRRPPPRRRPPPPRSSP","RRRRPPPRRSSPPPSSSS","RRRRPPPRSSPPRPSSSS","RRRRPPPPRSSPRPRSSP","RRRRPPPPRSSPPRSSSS","RRRRPPPSRSPPRSPSSS","RRRRPPPSPSSPRRSSSP","RRRRPPSRRPPSRRPPPP","RRRRPPSRRPPSSSPPSS","RRRRPSRRRRPSRRRRPS","RRRRPSRRPRPRRRSRPP","RRRRPSRPPRPSSSSPPS","RRRRPSRPPPPSRSSSPS","RRRRPSRPSRPSSSSPPP","RRRRPSRSSSPSRPPPPS","RRRRPSPRPPPSSRSSPS","RRRRPSPPSPRRSPSSPS","RRRRPSSRRPSSSSPPPP","RRRRPSSRPRPSSRPPPP","RRRRPSSRSRSPSPSPPP","RRRRPSSRSPSSRPPPPS","RRRRPSSRSSPSPRPPPS","RRRRPSSPSSRRPPSPPS","RRRRSRPRSPSPSPSSPP","RRRRSRSRSRSRSPSPRP","RRRRSRSPSPSPSPSPRP","RRRRSPRRRRSPRRRRSP","RRRRSPRPPRSPSSSPSP","RRRRSPRPPPSPRSSSSP","RRRRSPRSPSSPPSSRPP","RRRRSPRSSSSPRPPPSP","RRRRSPSSRRPSSSPPPP","RRRRSSRPSSPSPPSRPP","RRRRSSRSPRSPSSPPPP","RRRPRPRPSPRSPSRSRS","RRRPRPPSSPRSPPSSRS","RRRPRPSRPPPSSRPSSS","RRRPRPSRSSRPSPPSSP","RRRPRPSPRPSPSRPSSS","RRRPRPSPRSRPRSPSRS","RRRPRSRRRPRSRRRPRS","RRRPRSRPRPRSRRRPPS","RRRPRSRSRSRSPPSPRP","RRRPRSRSSSRPPSSPPP","RRRPRSPRPPPSSRSPSS","RRRPRSPRSPSSSPSPRP","RRRPRSSRSPSSPRPPPS","RRRPPRRRPPPRRPPPSS","RRRPPRRRSSPPPRRPPP","RRRPPRRPPPSSRPRPSS","RRRPPRRPPPSSSRPSSS","RRRPPRSRPPPSSPRSSS","RRRPPPRRRPPPRRRPPP","RRRPPPRRSPPRRRPPPS","RRRPPPSSSRRRPPPSSS","RRRPPSRRPPPRRRSPPP","RRRPPSRSRPRSRPRPSS","RRRPPSPSSRRRPPSPSS","RRRPPSSSPRRRPPSSSP","RRRPSRRSSSPRPSSPPP","RRRPSSRPRPRSRSRPPS","RRRSRPRRRSRPRRRSRP","RRRSRPRPRSRPRRRSPP","RRRSRPRSRSRSSPPPRP","RRRSRPPRPSPPSRSSSP","RRRSRPSRPSSPSPSPRP","RRRSRPSRSSSPPRPSPP","RRRSRSPRSSSPPRSPPP","RRRSPRRRSSSPPSSPPP","RRRSPRPRSSPRPRSPPP","RRRSPPRSRSRPRPRSSP","RRRSSPRPRSRPRSRSPP","RRRSSSPPPRRRSSSPPP","RRPRRPRRPRRPRRPRRP","RRPRRPRRPRPSRPSRPS","RRPRRPRRPPSSPSSPSS","RRPRRPRRPSPSSPSSPS","RRPRRPRRPSSPSSPSSP","RRPRRPRRSRSSRSSRSP","RRPRRPRRSPSSPSSPSP","RRPRRPRRSSPSSPSSPP","RRPRRPRPSRPSSPSSPS","RRPRRPRSPRSPPSSPSS","RRPRRPRSPSSPSSPSRP","RRPRRPRSSPSPRSSPSP","RRPRRPSRPSPSSRPSPS","RRPRPSRRPRPSRRPRPS","RRPRPSPRPSPSRSPSRS","RRPRPSPSPRRSPSPSRS","RRPRPSSPSRRPRPSSPS","RRPRSPPSSRRPRSPPSS","RRPPSSRRPPSSRRPPSS","RRPSRSRSPSPSPRPRPS","RRPSRSPSPRRSPSPRPS","RRPSPSRRPSPSRRPSPS","RRPSSPRRPSSPRRPSSP","RRSRSPRRSRSPRRSRSP","RRSPSPRRSPSPRRSPSP","RRSSPPRRSSPPRRSSPP","RPRPRPRPRPRPRPRPRP","RPRSPSRPRSPSRPRSPS","RPSRPSRPSRPSRPSRPS","RSPRSPRSPRSPRSPRSP"}
412839
1
1
0
Returns: 554417
3)
100000
{"RRRRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRRRP","RRRRRRRRRRRRRRRRPP","RRRRRRRRRRRRRRRRPS","RRRRRRRRRRRRRRRRSP","RRRRRRRRRRRRRRRPRS","RRRRRRRRRRRRRRRPPP","RRRRRRRRRRRRRRRSRP","RRRRRRRRRRRRRRPRRP","RRRRRRRRRRRRRRPRRS","RRRRRRRRRRRRRRPRPS","RRRRRRRRRRRRRRPPSS","RRRRRRRRRRRRRRSRRP","RRRRRRRRRRRRRRSRSP","RRRRRRRRRRRRRRSSPP","RRRRRRRRRRRRRPRPRP","RRRRRRRRRRRRRPPRSS","RRRRRRRRRRRRRPSRPS","RRRRRRRRRRRRRSPRSP","RRRRRRRRRRRRRSSRPP","RRRRRRRRRRRRPPPPPP","RRRRRRRRRRRRPPPSSS","RRRRRRRRRRRRSSSPPP","RRRRRRRRRRRPRRRRRS","RRRRRRRRRRRPRRPRRP","RRRRRRRRRRRPRPPRSP","RRRRRRRRRRRPRPPPRP","RRRRRRRRRRRPPRRRSS","RRRRRRRRRRRPPRPSSP","RRRRRRRRRRRPPPRSSS","RRRRRRRRRRRPSRRRPS","RRRRRRRRRRRPSRPPRP","RRRRRRRRRRRPSRPPPS","RRRRRRRRRRRPSSRPPS","RRRRRRRRRRRSRRRRRP","RRRRRRRRRRRSPPRSSP","RRRRRRRRRRRSSSRPPP","RRRRRRRRRRPRRPPRPS","RRRRRRRRRRPRPSPSRS","RRRRRRRRRRPPRRRRSS","RRRRRRRRRRPPRPPRPP","RRRRRRRRRRPPPRRPPP","RRRRRRRRRRPSRPPPPS","RRRRRRRRRRPSRPSRPS","RRRRRRRRRRPSSPSPPS","RRRRRRRRRRSRRSSRSP","RRRRRRRRRRSRSPSPRP","RRRRRRRRRRSPRSPRSP","RRRRRRRRRRSPRSSSSP","RRRRRRRRRRSPPSPSSP","RRRRRRRRRRSSRRRRPP","RRRRRRRRRPRRRSSSPP","RRRRRRRRRPRPPPSPRS","RRRRRRRRRPRPSPPSRP","RRRRRRRRRPRSPRSPRS","RRRRRRRRRPPPRRRSSS","RRRRRRRRRPPPPPPPPP","RRRRRRRRRPPSSPSRPS","RRRRRRRRRPPSSSRRRP","RRRRRRRRRSRPSRPSRP","RRRRRRRRRSPRSPSSPP","RRRRRRRRRSSSRRRPPP","RRRRRRRRPRRRRRRRRP","RRRRRRRRPRRRRRPRRS","RRRRRRRRPRRPRRSRRS","RRRRRRRRPRPRRRPRSS","RRRRRRRRPRPPSPSPPS","RRRRRRRRPRPSPPPSPS","RRRRRRRRPRSRRRRRPP","RRRRRRRRPRSPSSSPSS","RRRRRRRRPRSSPSPSSS","RRRRRRRRPPRPPSSPPS","RRRRRRRRPPPRRRRSSP","RRRRRRRRPPSSPRPPPS","RRRRRRRRPSRPSSSSPS","RRRRRRRRPSSRRRRPPP","RRRRRRRRSRRSRRPRRP","RRRRRRRRSRPSPPPSPP","RRRRRRRRSRSRRRSRPP","RRRRRRRPRRRPRPRRSS","RRRRRRRPRPRPRSRSRS","RRRRRRRPRPPPPPPPRP","RRRRRRRPPRRPRRSRPS","RRRRRRRPPPRRRRPSPS","RRRRRRRPPPRRRPRSSP","RRRRRRRPPPSRRRPSSS","RRRRRRRPSRRRRRRRPS","RRRRRRRPSRRSRRPRPP","RRRRRRRPSSRPRRRPPP","RRRRRRRSRRRSRSRRPP","RRRRRRRSRSRSRPRPRP","RRRRRRRSPRRRRRRRSP","RRRRRRRSPSPRRRRPPP","RRRRRRRSSSPRRRSPPP","RRRRRRPRPRPRPRRSSP","RRRRRRPRPRPSPRRSSS","RRRRRRPPRRSPPRRSSS","RRRRRRPPPRRRRRRPPP","RRRRRRPPPRRRPPPSSS","RRRRRRPPPPPPSSSSSS","RRRRRRPPPPPSPSSSSS","RRRRRRPPPPPSSPSSSS","RRRRRRPPPPPSSSPSSS","RRRRRRPPPPPSSSSSSP","RRRRRRPPPPSSSPPSSS","RRRRRRPPPSSSPPPSSS","RRRRRRPPSRPRRSRPSS","RRRRRRPPSPRRSRRSPS","RRRRRRPPSPPPSSSSSP","RRRRRRPPSPPSPSSPSS","RRRRRRPPSSSSPPPSSP","RRRRRRPSRRPSRRRPPP","RRRRRRPSPSPSPSPSPS","RRRRRRPSSRRPRPRPRP","RRRRRRPSSRRSRRPPSP","RRRRRRPSSRSRRPRPPS","RRRRRRPSSPPPSSSSPP","RRRRRRSSRRPSSRRPPP","RRRRRRSSSRRRSSSPPP","RRRRRRSSSSSSPPPPPP","RRRRRPRRRRRPRRRRRP","RRRRRPRRPPRPRRSSRP","RRRRRPRRSRRRRRPRRS","RRRRRPRRSSRPRRPPRP","RRRRRPRPRRRPRRRRPP","RRRRRPRPRPRPRSPSRS","RRRRRPRPRPPPRSRSSP","RRRRRPRPPRRPRSSRRP","RRRRRPRPPPPSSPSSSS","RRRRRPRPPPSPPSSSSS","RRRRRPRPPPSPSSSPSS","RRRRRPRPPPSPSSSSSP","RRRRRPRPPSPPSSSSSP","RRRRRPRPPSPSPSSSPS","RRRRRPRPPSPSSSPSPS","RRRRRPRPPSSPSPPSSS","RRRRRPRPSPPSPPSPRS","RRRRRPRSRSRSRPPPRP","RRRRRPRSRSSPRPRPPP","RRRRRPRSSRRPRPPRRP","RRRRRPPRRPPPSRRSSP","RRRRRPPRPPPSSSSPSS","RRRRRPPRPPSPPSSSSS","RRRRRPPRPPSSPPSSSS","RRRRRPPRPSPPRRSSSP","RRRRRPPRPSPPSPSSSS","RRRRRPPRSSPPSSSSPP","RRRRRPPRSSSPPSPSSP","RRRRRPPPRPSPSPSSSS","RRRRRPPPPPSSSRPSSS","RRRRRPPPPSPSRSPSSS","RRRRRPPPSRPSSSSPPS","RRRRRPPPSPPRSSPSSS","RRRRRPPSRPPSSSPSPS","RRRRRPPSPSSSPPRSPS","RRRRRPSRRSSPPRRPPP","RRRRRPSPRPPSSSSPSP","RRRRRPSSRRPSSRPPPP","RRRRRPSSPSPPSSSRPP","RRRRRSRRPRRRRRSRRP","RRRRRSRPSPPSPPSPRP","RRRRRSSSPRSSSPPPPP","RRRRRSSSPSRSPSPPPP","RRRRRSSSPSSRPPSPPP","RRRRPRRPPPSRRPPSSS","RRRRPRRSSSPRRPSPPP","RRRRPRPRPRPRPSPSRS","RRRRPRPSPSPSPSPSRS","RRRRPRSRPSPSPSPPSS","RRRRPPRRRRPPRRRRPP","RRRRPPRRSRPRRRPRPS","RRRRPPRPSRPSPPSSSS","RRRRPPRPSPPSSPSRSS","RRRRPPRSPRSPPSPSSS","RRRRPPRSPPSPSSPRSS","RRRRPPRSSRSPPSPSSP","RRRRPPRSSPPSSPSRPS","RRRRPPPRRRPPRRRPPP","RRRRPPPRRRPPPPRSSP","RRRRPPPRRSSPPPSSSS","RRRRPPPRSSPPRPSSSS","RRRRPPPPRSSPRPRSSP","RRRRPPPPRSSPPRSSSS","RRRRPPPSRSPPRSPSSS","RRRRPPPSPSSPRRSSSP","RRRRPPSRRPPSRRPPPP","RRRRPPSRRPPSSSPPSS","RRRRPSRRRRPSRRRRPS","RRRRPSRRPRPRRRSRPP","RRRRPSRPPRPSSSSPPS","RRRRPSRPPPPSRSSSPS","RRRRPSRPSRPSSSSPPP","RRRRPSRSSSPSRPPPPS","RRRRPSPRPPPSSRSSPS","RRRRPSPPSPRRSPSSPS","RRRRPSSRRPSSSSPPPP","RRRRPSSRPRPSSRPPPP","RRRRPSSRSRSPSPSPPP","RRRRPSSRSPSSRPPPPS","RRRRPSSRSSPSPRPPPS","RRRRPSSPSSRRPPSPPS","RRRRSRPRSPSPSPSSPP","RRRRSRSRSRSRSPSPRP","RRRRSRSPSPSPSPSPRP","RRRRSPRRRRSPRRRRSP","RRRRSPRPPRSPSSSPSP","RRRRSPRPPPSPRSSSSP","RRRRSPRSPSSPPSSRPP","RRRRSPRSSSSPRPPPSP","RRRRSPSSRRPSSSPPPP","RRRRSSRPSSPSPPSRPP","RRRRSSRSPRSPSSPPPP","RRRPRPRPSPRSPSRSRS","RRRPRPPSSPRSPPSSRS","RRRPRPSRPPPSSRPSSS","RRRPRPSRSSRPSPPSSP","RRRPRPSPRPSPSRPSSS","RRRPRPSPRSRPRSPSRS","RRRPRSRRRPRSRRRPRS","RRRPRSRPRPRSRRRPPS","RRRPRSRSRSRSPPSPRP","RRRPRSRSSSRPPSSPPP","RRRPRSPRPPPSSRSPSS","RRRPRSPRSPSSSPSPRP","RRRPRSSRSPSSPRPPPS","RRRPPRRRPPPRRPPPSS","RRRPPRRRSSPPPRRPPP","RRRPPRRPPPSSRPRPSS","RRRPPRRPPPSSSRPSSS","RRRPPRSRPPPSSPRSSS","RRRPPPRRRPPPRRRPPP","RRRPPPRRSPPRRRPPPS","RRRPPPSSSRRRPPPSSS","RRRPPSRRPPPRRRSPPP","RRRPPSRSRPRSRPRPSS","RRRPPSPSSRRRPPSPSS","RRRPPSSSPRRRPPSSSP","RRRPSRRSSSPRPSSPPP","RRRPSSRPRPRSRSRPPS","RRRSRPRRRSRPRRRSRP","RRRSRPRPRSRPRRRSPP","RRRSRPRSRSRSSPPPRP","RRRSRPPRPSPPSRSSSP","RRRSRPSRPSSPSPSPRP","RRRSRPSRSSSPPRPSPP","RRRSRSPRSSSPPRSPPP","RRRSPRRRSSSPPSSPPP","RRRSPRPRSSPRPRSPPP","RRRSPPRSRSRPRPRSSP","RRRSSPRPRSRPRSRSPP","RRRSSSPPPRRRSSSPPP","RRPRRPRRPRRPRRPRRP","RRPRRPRRPRPSRPSRPS","RRPRRPRRPPSSPSSPSS","RRPRRPRRPSPSSPSSPS","RRPRRPRRPSSPSSPSSP","RRPRRPRRSRSSRSSRSP","RRPRRPRRSPSSPSSPSP","RRPRRPRRSSPSSPSSPP","RRPRRPRPSRPSSPSSPS","RRPRRPRSPRSPPSSPSS","RRPRRPRSPSSPSSPSRP","RRPRRPRSSPSPRSSPSP","RRPRRPSRPSPSSRPSPS","RRPRPSRRPRPSRRPRPS","RRPRPSPRPSPSRSPSRS","RRPRPSPSPRRSPSPSRS","RRPRPSSPSRRPRPSSPS","RRPRSPPSSRRPRSPPSS","RRPPSSRRPPSSRRPPSS","RRPSRSRSPSPSPRPRPS","RRPSRSPSPRRSPSPRPS","RRPSPSRRPSPSRRPSPS","RRPSSPRRPSSPRRPSSP","RRSRSPRRSRSPRRSRSP","RRSPSPRRSPSPRRSPSP","RRSSPPRRSSPPRRSSPP","RPRPRPRPRPRPRPRPRP","RPRSPSRPRSPSRPRSPS","RPSRPSRPSRPSRPSRPS","RSPRSPRSPRSPRSPRSP"}
129839
1
0
0
Returns: 203470174
4)
100000
{"RRRRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRRRP","RRRRRRRRRRRRRRRRPP","RRRRRRRRRRRRRRRRPS","RRRRRRRRRRRRRRRRSP","RRRRRRRRRRRRRRRPRS","RRRRRRRRRRRRRRRPPP","RRRRRRRRRRRRRRRSRP","RRRRRRRRRRRRRRPRRP","RRRRRRRRRRRRRRPRRS","RRRRRRRRRRRRRRPRPS","RRRRRRRRRRRRRRPPSS","RRRRRRRRRRRRRRSRRP","RRRRRRRRRRRRRRSRSP","RRRRRRRRRRRRRRSSPP","RRRRRRRRRRRRRPRPRP","RRRRRRRRRRRRRPPRSS","RRRRRRRRRRRRRPSRPS","RRRRRRRRRRRRRSPRSP","RRRRRRRRRRRRRSSRPP","RRRRRRRRRRRRPPPPPP","RRRRRRRRRRRRPPPSSS","RRRRRRRRRRRRSSSPPP","RRRRRRRRRRRPRRRRRS","RRRRRRRRRRRPRRPRRP","RRRRRRRRRRRPRPPRSP","RRRRRRRRRRRPRPPPRP","RRRRRRRRRRRPPRRRSS","RRRRRRRRRRRPPRPSSP","RRRRRRRRRRRPPPRSSS","RRRRRRRRRRRPSRRRPS","RRRRRRRRRRRPSRPPRP","RRRRRRRRRRRPSRPPPS","RRRRRRRRRRRPSSRPPS","RRRRRRRRRRRSRRRRRP","RRRRRRRRRRRSPPRSSP","RRRRRRRRRRRSSSRPPP","RRRRRRRRRRPRRPPRPS","RRRRRRRRRRPRPSPSRS","RRRRRRRRRRPPRRRRSS","RRRRRRRRRRPPRPPRPP","RRRRRRRRRRPPPRRPPP","RRRRRRRRRRPSRPPPPS","RRRRRRRRRRPSRPSRPS","RRRRRRRRRRPSSPSPPS","RRRRRRRRRRSRRSSRSP","RRRRRRRRRRSRSPSPRP","RRRRRRRRRRSPRSPRSP","RRRRRRRRRRSPRSSSSP","RRRRRRRRRRSPPSPSSP","RRRRRRRRRRSSRRRRPP","RRRRRRRRRPRRRSSSPP","RRRRRRRRRPRPPPSPRS","RRRRRRRRRPRPSPPSRP","RRRRRRRRRPRSPRSPRS","RRRRRRRRRPPPRRRSSS","RRRRRRRRRPPPPPPPPP","RRRRRRRRRPPSSPSRPS","RRRRRRRRRPPSSSRRRP","RRRRRRRRRSRPSRPSRP","RRRRRRRRRSPRSPSSPP","RRRRRRRRRSSSRRRPPP","RRRRRRRRPRRRRRRRRP","RRRRRRRRPRRRRRPRRS","RRRRRRRRPRRPRRSRRS","RRRRRRRRPRPRRRPRSS","RRRRRRRRPRPPSPSPPS","RRRRRRRRPRPSPPPSPS","RRRRRRRRPRSRRRRRPP","RRRRRRRRPRSPSSSPSS","RRRRRRRRPRSSPSPSSS","RRRRRRRRPPRPPSSPPS","RRRRRRRRPPPRRRRSSP","RRRRRRRRPPSSPRPPPS","RRRRRRRRPSRPSSSSPS","RRRRRRRRPSSRRRRPPP","RRRRRRRRSRRSRRPRRP","RRRRRRRRSRPSPPPSPP","RRRRRRRRSRSRRRSRPP","RRRRRRRPRRRPRPRRSS","RRRRRRRPRPRPRSRSRS","RRRRRRRPRPPPPPPPRP","RRRRRRRPPRRPRRSRPS","RRRRRRRPPPRRRRPSPS","RRRRRRRPPPRRRPRSSP","RRRRRRRPPPSRRRPSSS","RRRRRRRPSRRRRRRRPS","RRRRRRRPSRRSRRPRPP","RRRRRRRPSSRPRRRPPP","RRRRRRRSRRRSRSRRPP","RRRRRRRSRSRSRPRPRP","RRRRRRRSPRRRRRRRSP","RRRRRRRSPSPRRRRPPP","RRRRRRRSSSPRRRSPPP","RRRRRRPRPRPRPRRSSP","RRRRRRPRPRPSPRRSSS","RRRRRRPPRRSPPRRSSS","RRRRRRPPPRRRRRRPPP","RRRRRRPPPRRRPPPSSS","RRRRRRPPPPPPSSSSSS","RRRRRRPPPPPSPSSSSS","RRRRRRPPPPPSSPSSSS","RRRRRRPPPPPSSSPSSS","RRRRRRPPPPPSSSSSSP","RRRRRRPPPPSSSPPSSS","RRRRRRPPPSSSPPPSSS","RRRRRRPPSRPRRSRPSS","RRRRRRPPSPRRSRRSPS","RRRRRRPPSPPPSSSSSP","RRRRRRPPSPPSPSSPSS","RRRRRRPPSSSSPPPSSP","RRRRRRPSRRPSRRRPPP","RRRRRRPSPSPSPSPSPS","RRRRRRPSSRRPRPRPRP","RRRRRRPSSRRSRRPPSP","RRRRRRPSSRSRRPRPPS","RRRRRRPSSPPPSSSSPP","RRRRRRSSRRPSSRRPPP","RRRRRRSSSRRRSSSPPP","RRRRRRSSSSSSPPPPPP","RRRRRPRRRRRPRRRRRP","RRRRRPRRPPRPRRSSRP","RRRRRPRRSRRRRRPRRS","RRRRRPRRSSRPRRPPRP","RRRRRPRPRRRPRRRRPP","RRRRRPRPRPRPRSPSRS","RRRRRPRPRPPPRSRSSP","RRRRRPRPPRRPRSSRRP","RRRRRPRPPPPSSPSSSS","RRRRRPRPPPSPPSSSSS","RRRRRPRPPPSPSSSPSS","RRRRRPRPPPSPSSSSSP","RRRRRPRPPSPPSSSSSP","RRRRRPRPPSPSPSSSPS","RRRRRPRPPSPSSSPSPS","RRRRRPRPPSSPSPPSSS","RRRRRPRPSPPSPPSPRS","RRRRRPRSRSRSRPPPRP","RRRRRPRSRSSPRPRPPP","RRRRRPRSSRRPRPPRRP","RRRRRPPRRPPPSRRSSP","RRRRRPPRPPPSSSSPSS","RRRRRPPRPPSPPSSSSS","RRRRRPPRPPSSPPSSSS","RRRRRPPRPSPPRRSSSP","RRRRRPPRPSPPSPSSSS","RRRRRPPRSSPPSSSSPP","RRRRRPPRSSSPPSPSSP","RRRRRPPPRPSPSPSSSS","RRRRRPPPPPSSSRPSSS","RRRRRPPPPSPSRSPSSS","RRRRRPPPSRPSSSSPPS","RRRRRPPPSPPRSSPSSS","RRRRRPPSRPPSSSPSPS","RRRRRPPSPSSSPPRSPS","RRRRRPSRRSSPPRRPPP","RRRRRPSPRPPSSSSPSP","RRRRRPSSRRPSSRPPPP","RRRRRPSSPSPPSSSRPP","RRRRRSRRPRRRRRSRRP","RRRRRSRPSPPSPPSPRP","RRRRRSSSPRSSSPPPPP","RRRRRSSSPSRSPSPPPP","RRRRRSSSPSSRPPSPPP","RRRRPRRPPPSRRPPSSS","RRRRPRRSSSPRRPSPPP","RRRRPRPRPRPRPSPSRS","RRRRPRPSPSPSPSPSRS","RRRRPRSRPSPSPSPPSS","RRRRPPRRRRPPRRRRPP","RRRRPPRRSRPRRRPRPS","RRRRPPRPSRPSPPSSSS","RRRRPPRPSPPSSPSRSS","RRRRPPRSPRSPPSPSSS","RRRRPPRSPPSPSSPRSS","RRRRPPRSSRSPPSPSSP","RRRRPPRSSPPSSPSRPS","RRRRPPPRRRPPRRRPPP","RRRRPPPRRRPPPPRSSP","RRRRPPPRRSSPPPSSSS","RRRRPPPRSSPPRPSSSS","RRRRPPPPRSSPRPRSSP","RRRRPPPPRSSPPRSSSS","RRRRPPPSRSPPRSPSSS","RRRRPPPSPSSPRRSSSP","RRRRPPSRRPPSRRPPPP","RRRRPPSRRPPSSSPPSS","RRRRPSRRRRPSRRRRPS","RRRRPSRRPRPRRRSRPP","RRRRPSRPPRPSSSSPPS","RRRRPSRPPPPSRSSSPS","RRRRPSRPSRPSSSSPPP","RRRRPSRSSSPSRPPPPS","RRRRPSPRPPPSSRSSPS","RRRRPSPPSPRRSPSSPS","RRRRPSSRRPSSSSPPPP","RRRRPSSRPRPSSRPPPP","RRRRPSSRSRSPSPSPPP","RRRRPSSRSPSSRPPPPS","RRRRPSSRSSPSPRPPPS","RRRRPSSPSSRRPPSPPS","RRRRSRPRSPSPSPSSPP","RRRRSRSRSRSRSPSPRP","RRRRSRSPSPSPSPSPRP","RRRRSPRRRRSPRRRRSP","RRRRSPRPPRSPSSSPSP","RRRRSPRPPPSPRSSSSP","RRRRSPRSPSSPPSSRPP","RRRRSPRSSSSPRPPPSP","RRRRSPSSRRPSSSPPPP","RRRRSSRPSSPSPPSRPP","RRRRSSRSPRSPSSPPPP","RRRPRPRPSPRSPSRSRS","RRRPRPPSSPRSPPSSRS","RRRPRPSRPPPSSRPSSS","RRRPRPSRSSRPSPPSSP","RRRPRPSPRPSPSRPSSS","RRRPRPSPRSRPRSPSRS","RRRPRSRRRPRSRRRPRS","RRRPRSRPRPRSRRRPPS","RRRPRSRSRSRSPPSPRP","RRRPRSRSSSRPPSSPPP","RRRPRSPRPPPSSRSPSS","RRRPRSPRSPSSSPSPRP","RRRPRSSRSPSSPRPPPS","RRRPPRRRPPPRRPPPSS","RRRPPRRRSSPPPRRPPP","RRRPPRRPPPSSRPRPSS","RRRPPRRPPPSSSRPSSS","RRRPPRSRPPPSSPRSSS","RRRPPPRRRPPPRRRPPP","RRRPPPRRSPPRRRPPPS","RRRPPPSSSRRRPPPSSS","RRRPPSRRPPPRRRSPPP","RRRPPSRSRPRSRPRPSS","RRRPPSPSSRRRPPSPSS","RRRPPSSSPRRRPPSSSP","RRRPSRRSSSPRPSSPPP","RRRPSSRPRPRSRSRPPS","RRRSRPRRRSRPRRRSRP","RRRSRPRPRSRPRRRSPP","RRRSRPRSRSRSSPPPRP","RRRSRPPRPSPPSRSSSP","RRRSRPSRPSSPSPSPRP","RRRSRPSRSSSPPRPSPP","RRRSRSPRSSSPPRSPPP","RRRSPRRRSSSPPSSPPP","RRRSPRPRSSPRPRSPPP","RRRSPPRSRSRPRPRSSP","RRRSSPRPRSRPRSRSPP","RRRSSSPPPRRRSSSPPP","RRPRRPRRPRRPRRPRRP","RRPRRPRRPRPSRPSRPS","RRPRRPRRPPSSPSSPSS","RRPRRPRRPSPSSPSSPS","RRPRRPRRPSSPSSPSSP","RRPRRPRRSRSSRSSRSP","RRPRRPRRSPSSPSSPSP","RRPRRPRRSSPSSPSSPP","RRPRRPRPSRPSSPSSPS","RRPRRPRSPRSPPSSPSS","RRPRRPRSPSSPSSPSRP","RRPRRPRSSPSPRSSPSP","RRPRRPSRPSPSSRPSPS","RRPRPSRRPRPSRRPRPS","RRPRPSPRPSPSRSPSRS","RRPRPSPSPRRSPSPSRS","RRPRPSSPSRRPRPSSPS","RRPRSPPSSRRPRSPPSS","RRPPSSRRPPSSRRPPSS","RRPSRSRSPSPSPRPRPS","RRPSRSPSPRRSPSPRPS","RRPSPSRRPSPSRRPSPS","RRPSSPRRPSSPRRPSSP","RRSRSPRRSRSPRRSRSP","RRSPSPRRSPSPRRSPSP","RRSSPPRRSSPPRRSSPP","RPRPRPRPRPRPRPRPRP","RPRSPSRPRSPSRPRSPS","RPSRPSRPSRPSRPSRPS","RSPRSPRSPRSPRSPRSP"}
213123
100
1000
1
Returns: 960021683
5)
3
{"RRR", "RPS", "RPS"}
0
1
1
1
Returns: 5
We have 5 attuned sets: {0}, {1}, {2}, {0,1}, {0,2}.
6)
3
{"RRR", "RPS", "RSP"}
0
1
1
1
Returns: 7
This time we have 2 more since ("RPS", "RSP") are attuned: {0}, {1}, {2}, {0,1}, {0,2}, {1,2}, {0,1,2}.
7)
6
{"RRRR", "RRPP", "PSPS"}
123456789
1
1
1
Returns: 13
Input = {"RRRR", "RRPP", "PSPS", "RSRR", "PSSR", "PSRR"}.
8)
50
{"PPPPPPPPP"}
22222223
0
100
0
Returns: 898961330
All 2^50-1 non-empty subsets are good, so the answer is (2^50-1) % (10^9+7).
Submissions are judged against all 166 archived test cases, of which 9 are shown here. Case numbers match the judge’s.
Coding Area
Language: C++17 · define a public class RPSRobots with a public method int countGoodSet(int n, vector<string> r, int seed, int pR, int pP, int pS) · 166 test cases · 2 s / 256 MB per case