Logo
(追記) (追記ここまで)

22172번 - Веревочная почта 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 256 MB86463650.000%

문제

Каждый из нас привык к различным средствам связи: телефон, электронная почта или социальная сеть всегда помогают нам передать другому человеку, возможно, находящемуся на другой стороне Земли, какие-то сведения. В одной известной фирме, предоставляющей в качестве своих сервисов электронную почту и систему мгновенной передачи сообщений, человеку, желающему работать в компании, предлагается следующее тестовое задание: посчитать минимальное время доставки всех сообщений до адресатов с помощью системы, называемой «Веревочная почта».

Суть системы сводится к следующему: на одной прямой, вдоль которой натянута веревка, находится n человек, пронумерованных по порядку числами от 1 до n. Известно, что между людьми с номерами, различающимися на 1, больше никого нет, и расстояние между всеми такими соседями одинаково и равно 1 метру.

Каждый из них хочет передать одному из других участников системы некоторое сообщение. Так, человек с номером i хочет передать сообщение человеку с номером ai. Каждый человек закрепляет конверт со своим сообщением на веревке около себя и пишет на нем номер адресата. После этого веревка несколько раз двигается вдоль прямой в разных направлениях, и как только перед человеком оказывается конверт, адресованный ему, он забирает его и получает сообщение.

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

Например, пусть первый человек хочет отправить сообщение второму, второй — третьему, третий — второму, а четвертый — первому. Тогда необходимо сдвинуть веревку вперед на 1 метр, после этого второй человек получит сообщение от первого, а третий — от второго. После этого веревку необходимо сдвинуть назад на 2 метра (после чего второй получит сообщение от третьего) и еще на 2 (первый получит сообщение от четвертого). Итого, веревку необходимо суммарно передвинуть на 5 метров.

입력

Первая строка входных данных содержит одно целое число n (2 ≤ n ≤ 1000) — количество людей, обменивающихся сообщениями. Вторая строка содержит n целых чисел ai (1 ≤ ain, aii) — номер человека, которому адресовано сообщение i-го участника.

출력

Выведите одно целое число — минимальное суммарное расстояние, на которое нужно сдвинуть веревку так, чтобы все сообщения попали по адресу.

제한

예제 입력 1

4
2 3 2 1

예제 출력 1

5

힌트

출처

Contest > Russian Code Cup > 2011 > RCC 2011 Elimination Round B번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /