|
6 / 6 / 3
Регистрация: 14.10.2014
Сообщений: 85
|
|
Поставить перед некоторыми из чисел минусы так, чтобы сумма всех чисел в таблице оказалась равна нулю04.11.2014, 01:08. Показов 4865. Ответов 13
Метки нет (Все метки)
Дана линейная таблица длиной N клеток. В клетках таблицы каким-то образом расставлены все натуральные числа от 1 до N без повторений. Необходимо поставить перед некоторыми из них минусы так, чтобы сумма всех чисел в таблице оказалась равна нулю.
Ввод Первая строка содержит число N (1 ≤ N ≤ 100 000). Следующие N строк содержат по одному числу каждая. Это исходная таблица чисел. Гарантируется, что в ней присутствуют все числа от 1 до N по одному разу. Вывод Первая строка должна содержать "YES" или "NO" (заглавными буквами, без кавычек), в зависимости от того, можно ли расставить минусы требуемым образом. Если можно, то следующие N строк должны содержать плюс или минус в зависимости от того, с каким знаком число в соответствующей строке входного файла входит в сумму. Ввод 1 Ввод 2 1_________1 __________4 __________2 __________3 __________1 __________4 Вывод 1 Вывод 2 NO_______YES __________+ __________+ __________- Я вообще не шарю что тут... вроде задача понятна... но примеры сбили немножко с толку. __________-
0
|
|
| 04.11.2014, 01:08 | |
|
Ответы с готовыми решениями:
13
Сгенерировать 5 случайных чисел так, чтобы их сумма была равна заданному числу Расставить плюсы и минусы так, чтобы сумма всех чисел была равна нулю Можно ли перед каждым из чисел от 1 до N расставить знаки «+» или «–» так, чтобы сумма получившихся чисел была равна 0? |
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
||
| 04.11.2014, 01:46 | ||
|
посмотрите на эту задачу - http://atpp.vstu.edu.ru/cgi-bi... id_prb=173 так примеры понятней? Добавлено через 12 минут а задачка несложная.. по формуле если число получилось нечётное, то ответ NO и готово, если чётное, то ответ YES и дальше для каждого числа вычисляете его позицию в ряду и, соответственно, знак + или минус...
0
|
||
|
6 / 6 / 3
Регистрация: 14.10.2014
Сообщений: 85
|
|
| 04.11.2014, 09:00 [ТС] | |
|
а как узнать сколько именно надо строк поймать?
0
|
|
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
||
| 04.11.2014, 12:13 | ||
|
Читаете и парсите ( Int.Parse() ) первую строчку входного файла, получаете число N
0
|
||
|
6 / 6 / 3
Регистрация: 14.10.2014
Сообщений: 85
|
||||||
| 04.11.2014, 15:33 [ТС] | ||||||
|
Sergio Leone,а, точно... а я и не заметил... в условии же есть...
Добавлено через 24 минуты Но я всё равно не особо понял как расставлять плюсы и минусы( Добавлено через 49 секунд
0
|
||||||
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
||
| 04.11.2014, 17:22 | ||
|
Кодом не помогу (ибо на компе инструментов нет, а скачивать и ставить (или пользоваться онлайн сервисами) - лень. Да и вообще, в праздник кодить грешно! ![]() А идею подскажу. Смотрите, если бы числа были записаны подряд, Вы знали бы, где расставить минусы, а где плюсы?! вот, например, N = 7 1 2 3 4 5 6 7 Мы выяснили, что данный ряд может быть плюсами/минусами превращён в ноль. Где должны быть плюсы, а где минусы? Сумма ряда равна 28. Очевидно, что половина сумма (14) должна быть со знаком плюс, половина - со знаком минус. Подсказываю. Есть центр ряда. число в центре - 4. число до него - 3 сумма 4+3 = 7. Маловато будет. Нужно ещё взять соседей. Соседи - это число 2 и число 5. сумма равна 14. для центральных чисел ставим минус, для окраиных - плюс. Теперь нужно рассмотреть этот алгоритм для другого, большого N (например, для N=12) выявите, как вычислить разницу для чисел, удалённых от центра... После выявления зависимости и установки алгоритма уже можно писать программу: читаем в цикле числа, проверяем их удалённость от центра ряда, если удалённость больше нужной - то этому числу ставим знак плюс, иначе - знак минус. Как то так...
0
|
||
|
6 / 6 / 3
Регистрация: 14.10.2014
Сообщений: 85
|
||||||
| 04.11.2014, 22:00 [ТС] | ||||||
|
я, короче сделал задачу... но на 11 тесте у меня вылетает тайм лимит... как его можно избежать... это надо либо всю програмку переделать либо... ещё что-то... помогите, пожалуйста(ридкей оставил для вас, чтоб вам его не набирать лишний раз)
0
|
||||||
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
||
| 04.11.2014, 22:36 | ||
|
простите, основной алгоритм не смотрел, завтра гляну. Если Вы раньше сами не разберетесь, конечно...
0
|
||
|
6 / 6 / 3
Регистрация: 14.10.2014
Сообщений: 85
|
|
| 04.11.2014, 22:38 [ТС] | |
|
Sergio Leone, я сумму поделил на 2... а потом просто убедился, что она -- целое число
0
|
|
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
|||||||
| 04.11.2014, 22:59 | |||||||
![]() а вот проверка на чётность нужна. я бы попробовал этот кусочек так переписать:
0
|
|||||||
|
6 / 6 / 3
Регистрация: 14.10.2014
Сообщений: 85
|
|
| 04.11.2014, 23:15 [ТС] | |
|
Sergio Leone, тогда надо сильно менять программу... а я новичёк ещё... ничерта не смогу решить(
а ещё... я проверял, будет ли сумма, которую я переполовинил целым числом
0
|
|
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|
| 21.11.2014, 00:08 | |
|
qwerty100, это олимпиадная задача, она решается не тремя вложенными циклами, а за 1 проход по массиву. Но алгоритм достаточно сложен (составные ветвления), чтобы объяснить его в двух словах. Вряд ли новичкам имеет смысл браться за такие задачи.
0
|
|
|
6 / 6 / 3
Регистрация: 14.10.2014
Сообщений: 85
|
|
| 22.11.2014, 12:58 [ТС] | |
|
кот Бегемот, такая у наш домашка
0
|
|
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
||
| 22.11.2014, 16:15 | ||
|
Как вычислить сумму массива? Программу писал на Паскале, СИ не знаю
0
|
||
| 22.11.2014, 16:15 | |
|
Помогаю со студенческими работами здесь
14
Можно ли так переставить цифры в числах А и В, чтобы сумма этих чисел была равна С?
Расставить числа 1...9 в пустые ячейки квадрата размером 3x3 так, чтобы сумма чисел в каждой строке, в столбце, а также по диагоналям была равна 15 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType и SDL3_ttf из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|