# test09

This program has been disqualified.

 Author Test Submission date 2014-07-30 03:10:30.300310 Rating 5000 Matches played 0 Win rate 0

## Source code:

``````if not input:
import random

ngrams = []
LIMIT = 1

rc = ""

class NGram:
content = ""
length = 0
count = 1

def __init__(self, content, length):
self.content = content
self.length = length

def __repr__(self):
return str([self.content, self.count])

def find_match(content):
if(len(ngrams) > len(content)):
ngram = [g for g in ngrams[len(content)-1] if g.content == content] #find match

if ngram:
return ngram[0]

for i in range(len(ngrams), len(content)):
ngrams.append([]) #append until len(ngrams) == len(content)

ngram = find_match(content)

if ngram: 	#if match found
ngram.count += 1
else: 		#else
ngram = NGram(content=content, length=len(content))
ngrams[len(content)-1].append(ngram)

def recent_content():
return rc

rc = recent_content()
length = len(rc)

for i in range(max(0, length-LIMIT), length):

def best_move():
rc = recent_content()

R = 0
P = 0
S = 0

rcR = rc + 'R'
rcP = rc + 'P'
rcS = rc + 'S'

for i in range(1, len(rcR)-1):
ngram = find_match(rcR[i:])

if ngram:
R += ngram.count ** ngram.length

for i in range(1, len(rcP)-1):
ngram = find_match(rcP[i:])

if ngram:
P += ngram.count ** ngram.length

for i in range(1, len(rcS)-1):
ngram = find_match(rcS[i:])

if ngram:
S += ngram.count ** ngram.length

best = max(R, P, S)
choices = []

if R == best:
choices.append("P")
if P == best:
choices.append("S")
if S == best:
choices.append("R")

return random.choice(choices)

output = random.choice(['R', 'P', 'S'])

else:
rc += input

if len(ngrams) > 0: