1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Unconnected |
15.01.2010 22:08
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Привет всем.
Меня заинтересовала задача из соседней темы, про перестановки в числах. Цитата Задача 4 "Сумма двух чисел" Имя входного файла: sum.in Имя выходного файла: sum.out Максимальное время работы на одном тесте: 2 секунды Максимальный объем используемой памяти: 64 мегабайта Заданы три числа: a, b, c. Необходимо выяснить, можно ли так переставить цифры в числах a и b, чтобы в сумме получилось c. Формат входных данных Входной файл содержит три целых числа: a, b, c (0 < a, b, c < 109). Числа разделены пробелом. Формат выходных данных Если искомая перестановка цифр возможна, необходимо вывести в выходной файл слово YES, в противном случае — выведите слово NO. При положительном ответе необходимо вывести во второй строке выходного файла число x, получаемое перестановкой цифр числа a, и число y, получаемое перестановкой цифр числа b, сумма которых равна c. Числа x и y не должны содержать ведущих нулей. Числа в строке разделены пробелом. Примеры входных и выходных файлов sum.in sum.out 12 31 25 ***YES*** **********12 13*** 12 31 26 ***NO*** Вот что я сделал: const m=6; Мой алгоритм перестановок (для трёхзначных чисел) основан на том, что если в числе переносить первую цифру в конец, пока не получится исходное число, а потом поменять 2 и 3 цифры местами и сделать то же самое, то получатся все перестановки.. Например: 123 231 312 меняем, 132 321 213 Получилось 6 перестановок, как раз 3!, как и должно быть. Моя программа почему-то не заполняет корректно массив (процедура Generate). Сообщение отредактировано: Unconnected - 18.01.2010 13:21 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
| Unconnected |
18.01.2010 17:26
Сообщение
#2
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Да, сначала я хотел заполнить строку с двумя неподвижными точками и чтобы нашлись все возможные вариации и посчиталось количество нужных мне вариантов. Только я не учёл, что там не только цифры от 1 до k-1 могут быть. Я имею в виду, на Подвижных позициях. Поздно что-то дошло..))
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Unconnected Задачи на перестановки 15.01.2010 22:08
volvo Потому что она у тебя вылетает за пределы этого ма... 15.01.2010 22:40
Unconnected Получается, надо константу m сделать равной 7? Всё... 16.01.2010 0:43
volvo Во-первых, я не совсем понял вот этот твой финт:
З... 16.01.2010 1:54
Unconnected Короче, я решил... вроде бы... Добавил кое-что, ко... 16.01.2010 17:37
volvo Мало просто скопировать символы... Надо еще и длин... 16.01.2010 17:40
Unconnected А как установить её, длину, вручную? Может, SetLen... 16.01.2010 17:41
volvo Если у тебя 32-битный компилятор - то SetLength, е... 16.01.2010 17:51
Unconnected Ого, не знал, спасибо за помощь :) 16.01.2010 17:53
Lapp Обычно в подобных случаях генерировать перестановк... 16.01.2010 23:44
Lapp Unconnected, можно я выскажу несколько замечаний?
... 17.01.2010 3:34
volvo А я уже говорил, что надо бы описывать тип (в сооб... 17.01.2010 11:10
Unconnected Короче, переделал я вообще механизм программы, т.к... 17.01.2010 11:31
volvo Ничего не забыл? 17.01.2010 11:46
Unconnected Мм нет вроде, а что, что-то забыл?:) Там массивы у... 17.01.2010 11:53
volvo Там не хватает слова Var... Не надо передавать в п... 17.01.2010 12:00
Lapp volvo, я понимаю твое возмущение:
пишите, "чт... 17.01.2010 13:08
Unconnected Да, и правда, если добавить var, то переписывание ... 17.01.2010 12:25
Lapp А я уже говорил, что надо бы описывать тип
...
Пос... 17.01.2010 12:41
volvo Это тебе только кажется :)
Это значит что? Ты про... 17.01.2010 12:49
Unconnected
К моим мозгам она чересчур требовательна)) Короч... 17.01.2010 15:28
Lapp К моим мозгам она чересчур требовательна))Ошибаешь... 18.01.2010 4:25
Lapp Так, процесс в целом нам стал более понятен, тепер... 18.01.2010 7:17
Unconnected //подновил время, правил пост 18.01.2010 0:54
Unconnected :good: :yahoo!: :good:
Lapp, спасибо огром... 18.01.2010 10:17
Lapp редкий случай, когда в статье (тянет на неё) я пон... 19.01.2010 2:21
Unconnected Я тут решил для закрепления решить сам задачку на ... 18.01.2010 12:23
volvo
У тебя строка пустая (сам же ее опустошил :) ), з... 18.01.2010 13:21
Unconnected Ага, теперь нормально, только на входных данных 5 ... 18.01.2010 13:24
volvo P.S.
Не совсем так... Это не неизвестное исключени... 18.01.2010 13:25
Unconnected Нормально - в смысле ошибка не вылетает:) А резуль... 18.01.2010 13:48
volvo Еще бы... У тебя переменная res описана локально, ... 18.01.2010 14:08
volvo P.S. На самом деле, твоя задача может решаться вот... 18.01.2010 14:38
Unconnected Ого.. решение короче намного, без множества и запо... 18.01.2010 15:09
volvo Смотри. Начинаем с генерации строки S. Что у тебя ... 18.01.2010 17:17
Unconnected
Ага, правильно. Надеюсь, эта тема поможет ещё ко... 19.01.2010 7:29
Unconnected И снова я... Уж очень хочется что-то самому полнос... 20.01.2010 0:18
Unconnected Короче я вроде бы разобрался, уже несколько задач ... 20.01.2010 18:19![]() ![]() |
|
Текстовая версия | 15.12.2025 20:53 |