sciana = [] grupa_znakow = [] linia = input() wysokosc, szerokosc = linia.split() for x in range(int(wysokosc)): k = input() sciana.append(k) dlugosc_napisu = input() napis = input() zmienna_sciana = [[] for x in range(int(wysokosc))] for x in range(int(wysokosc)): for k in range(int(szerokosc)): zmienna_sciana[x].append(sciana[x][k]) sciana[x] = zmienna_sciana[x] przenosnia = [] def gora(): for s in range(int(szerokosc)): for w in range(int(wysokosc)): if sciana[w][s] != ".": przenosnia.append(sciana[w][s]) if len(przenosnia)>0: for w in range(int(wysokosc)): if w < len(przenosnia): sciana[w][s] = przenosnia[w][:] else: sciana[w][s] = "." przenosnia.clear() def dol(): for s in range(int(szerokosc)): for w in range(int(wysokosc)): if sciana[int(wysokosc) - w - 1][s] != ".": przenosnia.append(sciana[int(wysokosc) - w - 1][s]) if len(przenosnia)>0: for w in range(int(wysokosc)): if w < len(przenosnia): sciana[int(wysokosc) - w - 1][s] = przenosnia[w][:] else: sciana[int(wysokosc) - w - 1][s] = "." przenosnia.clear() def prawo(): for w in range(int(wysokosc)): for s in range(int(szerokosc)): if sciana[w][int(szerokosc)-s-1] != ".": przenosnia.append(sciana[w][int(szerokosc)-s-1]) if len(przenosnia)>0: for s in range(int(szerokosc)): if s < len(przenosnia): sciana[w][int(szerokosc)-s-1] = przenosnia[s][:] else: sciana[w][int(szerokosc)-s-1] = "." przenosnia.clear() def lewo(): for w in range(int(wysokosc)): for s in range(int(szerokosc)): if sciana[w][s] != ".": przenosnia.append(sciana[w][s]) if len(przenosnia)>0: for s in range(int(szerokosc)): if s < len(przenosnia): sciana[w][s] = przenosnia[s][:] else: sciana[w][s] = "." przenosnia.clear() for x in range(int(dlugosc_napisu)): if(napis[x]=="G"): gora() if(napis[x]=="D"): dol() if(napis[x]=="P"): prawo() if(napis[x]=="L"): lewo() for x in range(int(wysokosc)): for y in range(int(szerokosc)): print(sciana[x][y], end="") print()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | sciana = [] grupa_znakow = [] linia = input() wysokosc, szerokosc = linia.split() for x in range(int(wysokosc)): k = input() sciana.append(k) dlugosc_napisu = input() napis = input() zmienna_sciana = [[] for x in range(int(wysokosc))] for x in range(int(wysokosc)): for k in range(int(szerokosc)): zmienna_sciana[x].append(sciana[x][k]) sciana[x] = zmienna_sciana[x] przenosnia = [] def gora(): for s in range(int(szerokosc)): for w in range(int(wysokosc)): if sciana[w][s] != ".": przenosnia.append(sciana[w][s]) if len(przenosnia)>0: for w in range(int(wysokosc)): if w < len(przenosnia): sciana[w][s] = przenosnia[w][:] else: sciana[w][s] = "." przenosnia.clear() def dol(): for s in range(int(szerokosc)): for w in range(int(wysokosc)): if sciana[int(wysokosc) - w - 1][s] != ".": przenosnia.append(sciana[int(wysokosc) - w - 1][s]) if len(przenosnia)>0: for w in range(int(wysokosc)): if w < len(przenosnia): sciana[int(wysokosc) - w - 1][s] = przenosnia[w][:] else: sciana[int(wysokosc) - w - 1][s] = "." przenosnia.clear() def prawo(): for w in range(int(wysokosc)): for s in range(int(szerokosc)): if sciana[w][int(szerokosc)-s-1] != ".": przenosnia.append(sciana[w][int(szerokosc)-s-1]) if len(przenosnia)>0: for s in range(int(szerokosc)): if s < len(przenosnia): sciana[w][int(szerokosc)-s-1] = przenosnia[s][:] else: sciana[w][int(szerokosc)-s-1] = "." przenosnia.clear() def lewo(): for w in range(int(wysokosc)): for s in range(int(szerokosc)): if sciana[w][s] != ".": przenosnia.append(sciana[w][s]) if len(przenosnia)>0: for s in range(int(szerokosc)): if s < len(przenosnia): sciana[w][s] = przenosnia[s][:] else: sciana[w][s] = "." przenosnia.clear() for x in range(int(dlugosc_napisu)): if(napis[x]=="G"): gora() if(napis[x]=="D"): dol() if(napis[x]=="P"): prawo() if(napis[x]=="L"): lewo() for x in range(int(wysokosc)): for y in range(int(szerokosc)): print(sciana[x][y], end="") print() |