Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
semik

Выведите минимальное количество перемещений

18.11.2011, 11:41. Показов 1913. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
3. Шашлыки

Имя входного файла input.txt
Имя выходного файла output.txt
Максимальное время работы на одном тесте 2 секунды
Ограничение по памяти 64 МБ

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

Формат входных данных:
В первой строке задано одно натуральное число N (1 ≤ N ≤ 105). Во второй строке через пробел записаны N различных чисел — номера позиций, куда нужно переместить соответствующие шампура. Все номера являются натуральными числами, не превосходящими N.

Формат выходных данных:
Выведите минимальное количество перемещений.

Пример
input.txt output.txt
4
1 4 3 2 1
5
4 2 1 3 5 2
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2011, 11:41
Ответы с готовыми решениями:

Минимальное количество перемещений
За один раз Вася может поменять местами два шампура. Помогите Васе подсчитать наименьшее количество перемещений шампуров. Формат...

Калькулятор: Выведите, какое минимальное количество кнопок должно быть добавлено
В новой программе OpenCalculator появилась новая возможность – можно настроить, какие кнопки отображаются, а какие – нет. Если кнопка не...

Выведите минимальное количество дозаправок автобуса, которые необходимы, чтобы совершить k рейсов
Вот такая вот задачка, помогите пожалуйста

1
30 / 24 / 22
Регистрация: 12.11.2011
Сообщений: 181
18.11.2011, 20:42
Лучший ответ Сообщение было отмечено как решение

Решение

Как я понимаю, на количество перестановок порядок перемещений не имеет значения, если хотя бы один из шампуров будет перемещаться на своё место. И в общем случае, надо переместить несколько "колец" из "неправильно" расположенных шампуров. Короче, у меня получилось следующее:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function KolVoPer(Kuda: array of Integer):Integer;
var
  ln:Integer; //Количество шампуров
  CurPos:Integer; //Текущий шампур
  KolVo:Integer; //Количество перемещений
  TempN:Integer; //Временная переменная
begin
//Установка начальных значений
  ln:=Length(Kuda); 
  CurPos:=0; 
  KolVo:=0;
 
  while CurPos<ln do //Проходим по всем шампурам
  begin
    while Kuda[CurPos]<>CurPos+1 do //Если шампур не на месте, то распутываем "кольцо"
     begin
                                       //Обмен местами шампуров
       TempN:=Kuda[Kuda[CurPos]-1];
       Kuda[Kuda[CurPos]-1]:=Kuda[CurPos];
       Kuda[CurPos]:=TempN;
                                     //Увеличиваем счетчик
       Inc(KolVo);
     end;
    inc(CurPos);
  end;
  Result:=KolVo;
end;
Перед началом работы алгоритма хорошо бы проверить на корректность значений, не то возможен уход в бесконечный цикл. С записью и чтением из файла, надеюсь, справитесь сами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2011, 20:42
Помогаю со студенческими работами здесь

В выходной файл выведите одно целое число – минимальное количество банок краски, необходимых для покраски
Здравствуйте, белые рыцари программирования. Сегодня вопрос по задаче. Она очень легкая, но у меня , почему-то, фейлится на первом же...

Задача "Сон шамана". В выходной файл выведите число K — минимальное время прохождения маршрута
Помогите решить эти 3 задачи Условие «Сон шамана» Работа шамана тяжела и опасна. Ему ежедневно приходится наставлять и поддерживать...

Выведите минимальное количество монет, которые нужно перевернуть
На столе лежат n монеток. Некоторые из них лежат вверх решкой, а некоторые – гербом. Определите минимальное число монеток, которые нужно...

Количество перемещений в массиве
В первой строке записано целое положительное число n (1 ≤ n ≤ 100) — количество блоков, в которых записан файл. Во второй строке следует...

Найти количество перемещений первого элемента заданного массива
Помогите пожалуйста найти количество перемещений первого элемента Я не понимаю , как написать это в программе #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru