(А. Богданов) Текстовый файл содержит строку из десятичных цифр, всего не более чем из \(10^6\) символов. Файл образовался в результате последовательной записи «таймкодов» некоторых событий в формате HHMM (часы и минуты слитно по две цифры, т.е. всего \(4\) цифры на «таймкод», от \(0000\) до \(2359)\) и прочих случайных данных. Найдите максимально возможное количество подряд идущих «таймкодов» между фрагментами случайной информации.
Например, в строке \(4212231135414447\) можно выделить таймкоды тремя способами: \(4[2122]3[1135]4[1444]7,\) \(42[1223,1135]4[1444]7\) или \(421[2231,1354,1444]7.\) В последнем случае получилось наибольшее количество таймкодов подряд - три, это число и нужно ввести в ответе.
Решение:
Python
def is_tc(a):
d = '0123456789'
f = '012345'
return (a[0] in '01' and a[1] in d or a[0] == '2' and a[1] in '0123') and a[2] in f and a[3] in d
s = open('4442.txt').readline().strip()
#s = '4212231135414447'
ls = len(s)
m = 0
for p in range(ls - 4):
if is_tc(s[p:p+4]):
t = 1
p1 = p + 4
while p1 < ls - 4 and is_tc(s[p1:p1+4]):
t += 1
p1 += 4
m = max(m, t)
print(m)
Ответ: \(2504\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене