Задача D. Водопровод с резервной ёмкостью Рассмотрим следующую модель водопровода. Имеется резервная ёмкость объемом V литров. По входной трубе постоянно поступает вода со скоростью d литров в минуту. По выходной трубе жидкость выливается со скоростью b литров в минуту. Выполняется условие, что d < b. В начальный момент времени выход Z из ёмкости перекрыт. В тот момент, когда ёмкость наполняется, выход открывается и вода поступает на выпуск. Так как d < b, то в какой-то момент ёмкость полностью опустеет, и заслонка Z снова закрывается, после чего процесс повторяется снова.
Очевидно, что при этом в работе водопровода случаются паузы, в течение которых происходит заполнение резервной ёмкости. К ним относится и первая пауза, служащая для первичного наполнения ёмкости водой. По техническим причинам требуется, чтобы длина каждой такой паузы не превышала величины p. При этом нас интересует суммарное время t, в течение которого выходная труба была открыта. Количество пауз n при этом должно быть минимальным возможным.
В рассматриваемой модели используются сколь угодно малые доли времени и объема. Считается, что заслонка Z срабатывает мгновенно.
По заданным величинам d, b, t, p требуется найти такой целый объём V, при котором число пауз n было минимально возможным для заданного времени подачи воды t, а среди всех объёмов, обеспечивающих такое время работы подачи воды и такое количество пауз найти самый маленький.
Формат входных данных
В первой строке содержится четыре целых числа d, b, t, p через пробел :
1
≤
1≤ d < b
≤
2
∗
1
0
9
≤2∗10
9
,
1
≤
1≤ t
≤
15000
≤15000,
1
≤
1≤ p
≤
5000
≤5000.
Формат выходных данных
Вывести одно целое число - объем V резервной ёмкости, обеспечивающей необходимые ограничения на подачу воды. Если таких объёмов несколько, вывести минимальный.
Пояснение к примеру 1.
Рассмотрим первый пример из условия. Скорость подачи d равна 5 литров в минуту, скорость выпуска b равна 10 литров в минуту, требуется обеспечить суммарную работу выпуска в течение t = 32 минут, при этом максимальный размер любой паузы не должен превышать p = 8 минут.
Если мы установим объём резервной ёмкости 40 литров, то:
- ровно за 8 минут (что разрешено условием) она наполнится со скоростью 5 литров в минуту;
- далее пойдет процесс выпуска: 40 литров будут выпущены за 4 минуты со скоростью выпуска 10 литров в минуту, но за это время в ёмкость попадёт 4*5 = 20 литров новой воды. Она будет выпущена за 2 минуты, но за это время поступит 2*5 = 10 литров новой воды, которая будет выпущена за 1 минуту и так далее. Так как доли времени и объема могут быть сколь угодно малыми, получим при подсчёте времени работы выпуска следующую сумму: 4 + 2 + 1 + 0.5 + 0.25 + 0.125 + , которая в итоге равна 8. То есть через 8 минут ёмкость полностью опустеет и заслонка закроется. Для того, чтобы время работы выпуска было равно 32 минуты потребуется 32 / 8 = 4 таких цикла, а значит и 4 паузы. За меньшее число пауз работу выпуска в течение 32 минут при существующих ограничениях обеспечить не получится.
Очевидно, что V = 40 литров - максимально возможный разрешённый объём, иначе первая же пауза будет больше допустимой. С другой стороны, если мы попробуем уменьшить объем до 39 литров, то получим:
- первоначальное заполнение будет произведено за 39 / 5 = 7.8 минуты. Далее процесс выпуска будет работать 39/10 + 39/20 + 39/40 + ... = 7.8 минуты. Тогда за 4 цикла выпуск будет работать 31.2 минуты и для обеспечения 32 минут работы выпуска потребуется пятая пауза.
#summa vtorqh elementov s konca chisel, kotorqe bolshe 9 s proverkoj na 9
a=0
b=0
c=0
print("Vvedite celqe chisla bolshe 9\n")
while int (a) < 10:
a = input("Vvedite pervoe chislo: ")
else:
while int (b) < 10:
b = input("Vvedite vtoroe chislo: ")
else:
while int (c) < 10:
c = input("Vvedite tretje chislo: ")
a=str(a)[::-1] #Perevodim v stroku i reversiruem
b=str(b)[::-1] #t.k. nachinaem sleva napravo
c=str(c)[::-1] #i tak legche vsego najti vtoroe chislo s konca
A=int(a[1]) #perevodim obratno v int dlja provedenija matem operacij nad nimi
B=int(b[1]) #element [1] i budet vtoroe chislo s konca
C=int(c[1])
if A==1:
A=A+1
if B==1:
B=B+1
if C==1:
C=C+1
sum = A+B+C
print("Summa desjatkov = " + str(sum))
Объяснение:
Это на python, наверное далеко не самый корректный код, но задачу выполняет. Если я правильно понял, то например у числа 12 десятком будет 2? (Судя по заданию) - если это не так, то надо всего лишь удалить весь блок проверки if (от if A==1: до C=C+1)
3) Создать пустой файл и сохранить его как *.html и *.css
4) Сохранить все нужные картинки
5) В html файле создать обязательные теги (html, head, body)
6) Начать создавать сайт, вначале форматируя его и создавая только рамки для того, чтобы в будущем положить туда нужные вещи. Например рамка меню слева на сайте, справа от меню рамка с информацией, сверху логотип, снизу футер и прочее.
7) Начинать делать сайт, добавляя в начале те элементы которые сложнее, и которые не стоит в будущем изменять, а потом переходить к боле простому
#summa vtorqh elementov s konca chisel, kotorqe bolshe 9 s proverkoj na 9
a=0
b=0
c=0
print("Vvedite celqe chisla bolshe 9\n")
while int (a) < 10:
a = input("Vvedite pervoe chislo: ")
else:
while int (b) < 10:
b = input("Vvedite vtoroe chislo: ")
else:
while int (c) < 10:
c = input("Vvedite tretje chislo: ")
a=str(a)[::-1] #Perevodim v stroku i reversiruem
b=str(b)[::-1] #t.k. nachinaem sleva napravo
c=str(c)[::-1] #i tak legche vsego najti vtoroe chislo s konca
A=int(a[1]) #perevodim obratno v int dlja provedenija matem operacij nad nimi
B=int(b[1]) #element [1] i budet vtoroe chislo s konca
C=int(c[1])
if A==1:
A=A+1
if B==1:
B=B+1
if C==1:
C=C+1
sum = A+B+C
print("Summa desjatkov = " + str(sum))
Объяснение:
Это на python, наверное далеко не самый корректный код, но задачу выполняет. Если я правильно понял, то например у числа 12 десятком будет 2? (Судя по заданию) - если это не так, то надо всего лишь удалить весь блок проверки if (от if A==1: до C=C+1)
1) Сделать макет сайта, например в фотошопе
2) Указать величину всех элементов на сайте
3) Создать пустой файл и сохранить его как *.html и *.css
4) Сохранить все нужные картинки
5) В html файле создать обязательные теги (html, head, body)
6) Начать создавать сайт, вначале форматируя его и создавая только рамки для того, чтобы в будущем положить туда нужные вещи. Например рамка меню слева на сайте, справа от меню рамка с информацией, сверху логотип, снизу футер и прочее.
7) Начинать делать сайт, добавляя в начале те элементы которые сложнее, и которые не стоит в будущем изменять, а потом переходить к боле простому
8) Проверить как смотрится сайт на разных экранах