Member 12792750 Ответов: 1

Как максимизировать сумму двух массивов


максимизация суммы произведения двух массивов
Вам даны два целочисленных массива A и B, каждый размером N .
Определим взаимодействие массивов A и B как сумму
a[i] * B[i] для каждого i от 1 до N .
Вы хотите максимизировать ценность взаимодействия
массивы. Вам разрешено сделать не более K (возможно, ноль)
операции следующего рода.
За одну операцию вы можете увеличить или уменьшить любую
элементы массива A и массив B на 1.
Найдите максимальное значение взаимодействия массивов
это вы можете получить.
Ввод
Первая строка содержит два целых числа через пробел N. k
Вторая строка содержит N целых чисел, разделенных пробелами
обозначив массива .
Третья строка содержит N целых чисел, разделенных пробелами
обозначая массив B .
Выход
выведите одно целое число, обозначающее ответ на вопрос
проблема.
Ограничения
1 ≤ N ≤ 10^5<br />
-10^5 ≤ |A[i]|, |B[i]| ≤ 10^5<br />
0 ≤ K ≤ 10^4

пример ввода 0
2 2
1 1
-1 -1

пример результата 0
0

пояснение 0
при обычном умножении получаем 1*(-1)+1*(-1)=-2
после разворачивания массива B b[0]=0 b[1]=0
тогда сумма равна 1*0+1*0= 0
пример вывода 1
2 2
-1 2
0 2

пример вывода 8
объяснение 1
a[]={-1,2}<br />
b[]={0,2}

о максимизации для k=2
b[1]=4
затем -1*0+2*4=8

Что я уже пробовал:

просто техника брутфорса но дает мне неправильный ответ

Patrice T

Показать код

Garth J Lancaster

вы когда-нибудь слышали об утке, печатающей на машинке ? то есть, если это звучит как, и если это пахнет как домашнее задание, то это, вероятно, домашнее задание

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

извините - я знаю, что это звучит грубо с того места, где вы сидите

[no name]

Если вы не понимаете своего домашнего задания, спросите своего учителя.

1 Ответов

Рейтинг:
2

Patrice T

Цитата:
просто техника брутфорса но дает мне неправильный ответ
Просто могу догадаться, что у вас где-то ошибка. но без кода ...

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

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.

Совет: возьмите лист бумаги и попробуйте сделать это вручную, ваша программа должна использовать ту же процедуру.