Chefstr2.py
Материал из DISCOPAL
Версия от 23:55, 4 мая 2022; StasFomin (обсуждение | вклад)
def main(): symbols = {} alphabet = "abcdefghijklmnopqrstuvwxyz" lenalf = len(alphabet) for i in range(lenalf): symbols[alphabet[i]] = i input_str = input() n = len(input_str) input_idx = bytearray([symbols[ch] for ch in input_str]) operations = 1e6 k_pow = 1e6 ind = 1 lim = 0.55 * n while ind <= lim: ks = -(n // -ind) frequency = [0] * lenalf*ind max_frequency = [0]*ind for i, idx in enumerate(input_idx): j = i % ind i_ = j*lenalf + idx cur_req = frequency[i_] + 1 if cur_req > max_frequency[j]: max_frequency[j] = cur_req frequency[i_] = cur_req cur_diff = ks*ind - sum(max_frequency) if cur_diff < operations: operations = cur_diff k_pow = ks elif operations == cur_diff: if ks < k_pow: k_pow = ks ind += 1 print(f"{operations} {k_pow}") main()
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.