Загрузка данных


Код решения на Python
python
import sys

def solve():
    # Чтение входных данных из стандартного потока
    input_data = sys.stdin.read().split()
    if not input_data:
        return
    
    n = int(input_data[0])
    k = int(input_data[1])
    s = input_data[2]
    
    frequencies = {}
    
    # 1. Подсчет биграмм внутри строки s
    for i in range(n - 1):
        bigram = s[i:i+2]
        frequencies[bigram] = frequencies.get(bigram, 0) + k
        
    # 2. Подсчет биграммы на стыке копий строк (если копий больше одной)
    if k > 1:
        border_bigram = s[-1] + s[0]
        frequencies[border_bigram] = frequencies.get(border_bigram, 0) + (k - 1)
        
    # 3. Поиск наилучшей биграммы
    best_bigram = ""
    max_count = -1
    
    for bigram, count in frequencies.items():
        if count > max_count:
            max_count = count
            best_bigram = bigram
        elif count == max_count:
            if bigram < best_bigram:
                best_bigram = bigram
                
    # Вывод результата
    print(best_bigram)
    print(max_count)

if __name__ == '__main__':
    solve()