#!/usr/bin/env python3 mozne_vysledky = { "C,PD": "b", "Z,LD": "d", "Z,PH" : "p", "C,LH" : "q"} zmeny_prvni_konf= ["C", "Z"] zmeny_druhe_konf = ["PD", "LD", "LH", "PH"] # otaceni doprava nebo doleva podle predane promenne smer def otaceni_dokola(index_druhe_konf,navysku,smer): return ((index_druhe_konf - smer) % len(zmeny_druhe_konf), not navysku) # pokazde se zmeni, zda je papir na vysku pocet_vstupu = int(input()) for _ in range(pocet_vstupu): seznam_operaci = input() navysku = False # defalutne je papir nasirku index_prvni_konf = 0 # defaultne je papir celni stranou index_druhe_konf = 0 # defaultne je tecka vpravo dole for operace in seznam_operaci: if operace == "R": smer = -1 # protismeru hodinovych rucicek doprava index_druhe_konf, navysku = otaceni_dokola(index_druhe_konf, navysku, smer) elif operace == "L": smer = 1 # posmeru hodinovych rucicek doleva index_druhe_konf, navysku = otaceni_dokola(index_druhe_konf, navysku, smer) elif operace == "H": index_prvni_konf = (index_prvni_konf + 1) % len(zmeny_prvni_konf) if navysku: smer = -1 # protismeru hodinovych rucicek doprava index_druhe_konf, navysku = otaceni_dokola(index_druhe_konf, navysku, smer) else: smer = 1 # posmeru hodinovych rucicek doleva index_druhe_konf, navysku = otaceni_dokola(index_druhe_konf, navysku, smer) elif operace == "V": index_prvni_konf = (index_prvni_konf + 1) % len(zmeny_prvni_konf) if navysku: smer = 1 # posmeru hodinovych rucicek doleva index_druhe_konf, navysku = otaceni_dokola(index_druhe_konf, navysku, smer) else: smer = -1 # protismeru hodinovych rucicek doprava index_druhe_konf, navysku = otaceni_dokola(index_druhe_konf, navysku, smer) #stav si vytvorime z prvni a druhe konfigurace a vyhledame ve slovniku stav = zmeny_prvni_konf[index_prvni_konf] + "," + zmeny_druhe_konf[index_druhe_konf] if stav in mozne_vysledky.keys(): print(mozne_vysledky[stav]) else: print("?")