Ну так-то вроде просто, уравнение. Объем ролика W Мбит, при передаче каждые 6 бит превращаются в 8 бит. Объем вырастает до 8/6*W = 4W/3 Мбит. 1-ая половина ролика, то есть 2W/3 Мбит, была передана со скор. V Мбит/сек. 2-ые 2W/3 Мбит были переданы со скоростью V+3 Мбит/сек. Общее затраченное время T1 = 2W/(3V) + 2W/(3V+9) сек. Если бы он скачал ролик с файлового сервера, со скоростью V-1,5 Мбит/с, то объем ролика был бы W, потому что при файловой передаче нет преобразования каждых 6 бит в 8. Затраченное время было бы T2 = W/(V-1,5) сек. И оно в 2 раза больше. 2*(2W/(3V) + 2W/(3V+9)) = W/(V-1,5) Делим все на W, получаем 4/(3V) + 4/(3V+9) = 1/(V-1,5) Избавляемся от знаменателей 4(3V+9)(V-1,5) + 4*3V(V-1,5) = 3V(3V+9) Раскрываем скобки 12V^2 + 36V - 18V - 54 + 12V^2 - 18V = 9V^2 + 27V Упрощаем до квадратного уравнения 15V^2 - 27V - 54 = 0 5V^2 - 9V - 18 = 0 D= 9^2 + 4*5*18 = 81 + 360 = 441 = 21^2 V1 = (9 - 21)/10 < 0 V2 = (9 + 21)/10 = 3 Мебибит в сек
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016 begin var s:=ReadLnString('Вводите:'); s.ToWords.Where(x->x=ReverseString(x)).PrintLn; end.
Тестовое решение: Вводите: дед иван достал наган и пошел с ним в шалаш дед наган и с в шалаш
Вариант, если исключить однобуквенные:
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016 begin var s:=ReadLnString('Вводите:'); s.ToWords.Where(x->x=ReverseString(x)). Where(x->x.Length>1).PrintLn; end.
Тестовое решение: Вводите: дед иван достал наган и пошел с ним в шалаш дед наган шалаш
Объем ролика W Мбит, при передаче каждые 6 бит превращаются в 8 бит.
Объем вырастает до 8/6*W = 4W/3 Мбит.
1-ая половина ролика, то есть 2W/3 Мбит, была передана со скор. V Мбит/сек.
2-ые 2W/3 Мбит были переданы со скоростью V+3 Мбит/сек.
Общее затраченное время T1 = 2W/(3V) + 2W/(3V+9) сек.
Если бы он скачал ролик с файлового сервера, со скоростью V-1,5 Мбит/с,
то объем ролика был бы W, потому что при файловой передаче нет преобразования каждых 6 бит в 8.
Затраченное время было бы T2 = W/(V-1,5) сек. И оно в 2 раза больше.
2*(2W/(3V) + 2W/(3V+9)) = W/(V-1,5)
Делим все на W, получаем
4/(3V) + 4/(3V+9) = 1/(V-1,5)
Избавляемся от знаменателей
4(3V+9)(V-1,5) + 4*3V(V-1,5) = 3V(3V+9)
Раскрываем скобки
12V^2 + 36V - 18V - 54 + 12V^2 - 18V = 9V^2 + 27V
Упрощаем до квадратного уравнения
15V^2 - 27V - 54 = 0
5V^2 - 9V - 18 = 0
D= 9^2 + 4*5*18 = 81 + 360 = 441 = 21^2
V1 = (9 - 21)/10 < 0
V2 = (9 + 21)/10 = 3 Мебибит в сек
begin
var s:=ReadLnString('Вводите:');
s.ToWords.Where(x->x=ReverseString(x)).PrintLn;
end.
Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган и с в шалаш
Вариант, если исключить однобуквенные:
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
var s:=ReadLnString('Вводите:');
s.ToWords.Where(x->x=ReverseString(x)).
Where(x->x.Length>1).PrintLn;
end.
Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган шалаш