Member 12660992 Ответов: 1

Как решить эту проблему на C, C++ или java, пожалуйста, ответьте на этот вопрос как можно скорее


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

Примечание-сумма произведения является суммированием (A[i]*B[i]) для всех i от 1 до n, где n-размер обоих массивов
входной формат:
Первая строка входных данных содержит n и k, разделенные пробелами
Вторая строка содержит массив A (модифицируемый массив) со значениями, разделенными пробелами
Третья строка содержит массив B (немодифицируемый массив) со значениями, разделенными пробелами

выходной формат:

Выведите минимальную сумму произведений двух массивов
Ограничения:
1 ≤ N ≤ 10^5
0 ≤ / A[i]/, / B[i] / ≤ 10^5
0 ≤ K ≤ 10^9



Пример ввода и вывода


СНО. Ввода-Вывода
1.

3 5
1 2 -3
-2 3 -5
-31

2.

5 3
2 3 4 5 4
3 4 2 3 2
25

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

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    long long  int A[10^5],B[10^5];
    int N;
    int pro,temp,diff;
    int maxDiff=0,minSum=0;
    int K;
    cin>>N>>K;
    for(int i=0;i<n;i++)>
    {
        cin>>A[i];
        cin>>B[i];
    }
    for(int i=0;i<n;i++)>
    {
        pro=A[i]*B[i];
        if(pro<0 && B[i]<0)
        temp=(A[i]+2 * K)* B[i];
        else if(pro<0 && A[i]<0)
        temp=(A[i]-2 * K)* B[i];
        else if(pro>0 && A[i]<0)
        temp=(A[i]+ 2* K)* B[i];
        else if(pro>0 && A[i]>0)
        temp=(A[i]- 2*K) *B[i];
        diff=abs(pro-temp);
        if(diff>maxDiff)
        maxDiff=diff;
        minSum=minSum+pro;
    }

    minSum=minSum-maxDiff;
    cout<<"\n"<<minSum;

}

Patrice T

В чем проблема ?

1 Ответов

Рейтинг:
0

Richard MacCutchan

long long  int A[10^5],B[10^5];

Вышеизложенное даже не будет компилироваться, а если бы и было, то у вас было бы два массива, каждый из которых состоял бы из нулевых элементов. Я предлагаю прочитать Встроенные операторы C++, приоритет и ассоциативность[^]. Вы также объявляете переменную N, но затем попробуйте использовать переменную с именем n В вашем for петля. Использование правильных осмысленных имен для переменных помогает избежать простых ошибок, подобных этой.