Задача A. Частые подстроки

Автор:А. Кленин
Входной файл: input.txt   Ограничение времени:1 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб
Максимальный балл:50  

Условие

В данной строке длиной N символов требуется найти подстроку длиной K символов, встречающуюся наибольшее число раз.

Например, в строке "ABC ABDC ABCC A" наиболее часто встречающаяся подстрока из двух символов — "AB", а наиболее часто встречающаяся подстрока из трёх символов — "C A".

В случае, если несколько подстрок встречаются с одинаковой частотой, следует вывести первую в лексикографическом порядке.

Рекомендуется рассмотреть частичные решения

Формат входного файла

Первая строка входного файла содержит строку, вторая — число K.

Формат выходного файла

Выходной файл должен содержать искомую подстроку.

Ограничения

1 ≤ K ≤ N ≤ 10000

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
sample text
1
e
2
AABBBBAA
2
BB
3
sample
6
sample

Задача B. Канатная дорога

Автор:И. Бураго
Входной файл: input.txt   Ограничение времени:2 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб
Максимальный балл:100  

Условие

Не так давно администрация столицы Флатландии приняла решение о строительстве канатной дороги. Этот транспорт подходит городу как нельзя лучше: столица построена на N холмах, каждый из которых при взгляде сбоку имеет вид параболы с направленными вниз ветвями. То есть i-й холм можно однозначно определить такими тремя числами Ai, Bi, Ci, что точка плоскости с координатами (x, y) находится внутри холма тогда и только тогда, когда Ai x2 + Bi x + Ci ≥ y. Холмы могут пересекаться, но вершина холма никогда не находится внутри другого холма.

Канатная дорога представляет собой набор из K одинаковых столбов высоты H, через вершины которых последовательно (в порядке увеличения абсциссы) протянут канат. В целях повышения надежности пассажирских перевозок столбы должны устанавливаться только на вершинах холмов. На первом и N-м холмах обязательно должны быть установлены столбы. Отрезки каната не должны пересекаться или даже касаться холмов.

Покупка уникальных столбов с античными барельефами принесла казне столицы существенные убытки, поэтому администрация хочет установить столбы так, чтобы сэкономить хотя бы на канате. Требуется написать программу, которая вычислит минимальную необходимую длину каната.

Рекомендуется рассмотреть частичные решения

Формат входного файла

В первой строке входного файла находятся числа N K H, где N — количество холмов, K — число столбов и H — высота каждого из них (вещественное число). В каждой из следующих N строк содержится тройка вещественных чисел Ai Bi Ci, определяющая вид i-го холма. Холмы заданы в порядке увеличения абсциссы вершин.

Формат выходного файла

В единственную строку выходного файла выведите минимальную длину каната, необходимого для строительства, с точностью до трёх знаков после десятичной точки или 1, если построить канатную дорогу невозможно.

Ограничения

2 ≤ N ≤ 300, 2 ≤ K ≤ N, 1 ≤ H ≤ 106.

106 ≤ Ai < 0, 106 ≤ Bi, Ci ≤ 106.

Все вещественные числа во входном файле заданы не более чем с 5 знаками после десятичной точки.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
3 3 1.5
-1 -5 0
-2 0 10
-1 4 0
10.831
2
3 2 1.5
-1 -5 0
-2 0 10
-1 4 0
-1

Задача C. Крестики-нолики

Автор:А. Кленин
Входной файл: input.txt   Ограничение времени:1 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб
Максимальный балл:50  

Условие

Позиция в игре "крестики-нолики" определяется массивом размером 3 × 3 символа, в котором латинская буква "X" обозначает крестик, латинская буква "O" — нолик, а символ "." (ASCII 46) — свободную клетку.

По данной позиции следует определить, достижима ли она в процессе игры, и, если да, то чей сейчас ход или кто победил, если партия уже закончена (следует учесть, что партия начинается с хода "крестиков"). В зависимости от результата необходимо вывести (без кавычек):

Формат входного файла

Входной файл содержит три строки по три символа в каждой — описание позиции.

Формат выходного файла

Выходной файл должен содержать единственную строку — результат анализа позиции.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
...
...
...
X moves
2
...
.O.
...
impossible
3
X.O
.XO
X.O
O wins

0.044s 0.005s 13