一维动态规划

s = input()
N = int(input())

# 起始点
add_CG_result_list = [0] * len(s) # 以第n个字母为开头时 CG比例的变化情况
for each in range(1, len(s)-N+1):
    do_add = 0
    if s[each-1] in "CG":
        do_add -= 1
    if s[each+N-1] in "CG":
        do_add += 1
    add_CG_result_list[each] = add_CG_result_list[each-1] + do_add
start = add_CG_result_list.index(max(add_CG_result_list))

print(s[start:start+N])