В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
DnoKaKtys
DnoKaKtys
16.12.2021 03:00 •  Информатика

Задача A. НЖМД Имя входного файла: harddrive.in
Имя выходного файла: harddrive.out
Ограничение по времени: 2 секунды
Ограничение по памяти: 256 мегабайт
Бедному НЖМД уже много лет. И все эти годы он непрестанно трудится в недрах старого ПК.
НЖМД — это ни что иное как обычный жесткий диск на котором хранится один большой Очень
Важный Файл. И НЖМД очень устал непрестанно крутиться, чтобы обеспечивать постоянный
доступ к этому Файлу.
Как известно, для хранения файлы разбиваются на много блоков одинакового размера, которые
могут хранится в различных местах жесткого диска, не обязательно последовательно — это
называется фрагментацией. Вот и сейчас получилось, что Очень Важный Файл занимает весь
НЖМД, но блоки, на которые он разбит, расположены не последовательно.
Данные с жесткого диска могут считываться специальной считывающей головкой, причем
для доступа к различным местам жесткого диска считывающая головка вращается относительно
жесткого диска, но всегда в одну и ту же сторону. Блоки можно считывать только в той
последовательности, в которой они образуют файл, то есть сначала необходимо переместить
головку на место расположения первого блока, считать его, далее переместить головку на место
расположения второго блока, считать его и так далее. Таким образом, из-за непоследовательности
расположения данных получается, что за один оборот жесткого диска, возможно, не получится
считать весь файл.
Вам известно в каком порядке на НЖМД расположены блоки, на которые разбит файл. Ваша
задача состоит в том, чтобы найти минимальное число полных оборотов считывающей головки
относительно жесткого диска, которые ей придется сделать, чтобы прочитать весь файл от первого
до последнего блока.
Формат входного файла
Первая строка входного файла содержит единственное натуральное число n (1 ≤ n ≤ 105
) —
количество блоков, на которые разбит файл.
Следующая строка содержит n различных натуральных чисел pi (1 ≤ pi ≤ n) — перестановку
чисел от 1 до n, задающую в какой последовательности хранятся блоки файла. pi — номер блока,
который хранится на i-ом месте в сторону вращения жесткого диска.
Изначально считается, что считывающая головка находится перед первым блоком. Считается,
что головка делает полный оборот, когда ей приходится проходить между n-ым и первым блоком.
Формат выходного файла
В выходной файл выведите единственное целое число — минимальное количество оборотов,
которое необходимо совершить считывающей головке, чтобы прочитать весь Очень Важный Файл
от первого до последнего блока.
Примеры
harddrive.in harddrive.out
3
3 1 2
1
2
1 2
0
4
4 3 2 1
3
нужно решить на паскале

Показать ответ
Ответ:
infernyc
infernyc
12.07.2020 07:08

from math import sqrt

a=float(input("a="))

b=float(input("b="))

c=float(input("c="))

if a>0:

print("квадратный корень a=" + sqrt(a))

if b>0:

print("квадратный корень b=" + sqrt(b))

if c>0:

print("квадратный корень c=" + sqrt(c))

Объяснение:

Сперва нужно проверять положительное ли, если положительное, то выводить корень, если не проверяя( как в другом ответе ) выводить, то выведет ошибку потому-что корня отрицательного цисла нету.

И переводить в строку числа не обязательно, во время конкатенации всё само сделается!

Я смог !?

0,0(0 оценок)
Ответ:
sem212
sem212
11.01.2023 09:58

import turtle

from math import tan, sqrt, pi

def prepare(x, y, color):

  turtle.penup()

  turtle.goto(x, y)

  turtle.pendown()

  turtle.color(color)

  turtle.begin_fill()

def draw_polygon(num_sides, side_length):

  angle = 360.0 / num_sides

  for i in range(num_sides):

      turtle.forward(side_length)

      turtle.right(angle)

  turtle.end_fill()

def calc_s(num_sides, side_length):

  return num_sides * side_length ** 2 / (4 * tan(pi/num_sides))

def calc_side(square):

  return sqrt(4 * square * tan(pi/num_sides) / num_sides)

turtle.hideturtle()

turtle.speed(10)

colors = ['red', 'green', 'blue', 'cyan', 'magenta', 'black', 'yellow', 'pink', 'brown']

xcoords = [0, 150, -150, 150, -150, 270, -270, 270, -270]

ycoords = [0, 150, -150, -150, 150, 270, -270, -270, 270]

squares = []

numsides = []

for i in range(9):

  num_sides = i + 3

  square = round(calc_s(num_sides, 100), 2)

  side_length = round(calc_side(10000), 3)

  squares.append(square)

  numsides.append(num_sides)

  print("Углов:", num_sides, "была площадь:", square, "стала длина грани:", side_length,

        "изменение в", round(side_length/100, 2), "раз")

  prepare(xcoords[i], ycoords[i], colors[i])

  draw_polygon(num_sides, side_length)

turtle.exitonclick()

print("Список количество углов:", numsides, end="")

print("Список площади:", squares)

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота