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
| # 把頭放到腳or 放到頭 from sys import stdin def right(t, string): for i in range(t): string.insert(0, string[-1]) string.pop() return string
def left(t, string): for i in range(t): string.append(string[0]) string.pop(0) return string
def cou(): global total for i in range(n): big = 0 last = 0 arr = [] for j in range(len(strings)): arr.append(strings[j][i]) arr = sorted(arr) #print(arr) laststr = arr[0] for j in arr: if j == laststr: big += 1 else: last = max(last, big) big = 1 laststr = j #print(max(big, last)) total += max(big, last)
#m, n, k = 3, 6, 2 #strings = [list("apcsie"), list("taiwan"), list("icpeda")] #print(left(4, strings)) m, n, k = map(int, stdin.readline().split()) strings = [] for i in range(m): strings.append(list(input()))
total = 0 for i in range(k): inp = list(map(int, stdin.readline().split())) for j in range(m): if inp[j] < 0: strings[j] = left(-inp[j], strings[j]) if inp[j] == 0: pass if inp[j] > 0: strings[j] = right(inp[j], strings[j]) cou() #n = 3 #strings = [list("abc"), list("abc"), list("acb")] #print(strings) print(total)
|