Форум программистов, компьютерный форум CyberForum.ru

Подскажите решение... - C++

Восстановить пароль Регистрация
 
lfin
2 / 2 / 0
Регистрация: 11.10.2009
Сообщений: 31
01.11.2009, 13:57     Подскажите решение... #1
Доброе время суток!
Имеются числа А1,А2,...,АN и B1,B2,...,BN. Составить из них N пар (Аi, Bj) таким образом, чтобы сумма произведений пар была максимальна (минимальна). Каждое Ai и Bj в парах встречаются ровно по одному разу.
Возможно пригодится: Чтобы сумма произведений пар была максимальна (минимальна) необходимо упорядочить наборы A и B одинаковым (различным) образом и пары будут составлять элементы стоящие на одинаковых позициях в упорядоченных наборах. Это следует из того факта, что если а<b и c<d,то а*с+b*d>=a*d+b*c.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2009, 13:57     Подскажите решение...
Посмотрите здесь:

C++ Подскажите решение
РЕШЕНИЕ??? C++
Решение в VC++ C++
C++ Решение в С++
C++ Подскажите, пожалуйста, верно ли решение.
C++ Подскажите пожалуйста решение задачи.
C++ Подскажите альтернативное решение
Подскажите паттерн или архитектурное решение C++
задача на функции со сменным числом параметров. подскажите, пожалуйста решение C++
C++ Ребят, подскажите решение задачи
Преобразовать решение (дано решение без указателей) C++
Преобразовать решение используя указатели (дано решение без указателей) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
01.11.2009, 18:35     Подскажите решение... #2
упорядочить наборы A и B одинаковым (различным) образом и пары будут составлять элементы стоящие на одинаковых позициях в упорядоченных наборах.
Ответ ты сам написал.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.11.2009, 21:08     Подскажите решение... #3
C++
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream.h>
#include <process.h>
#include <windows.h>
 
int main ()
{
    int *mas, n, i, j, temp;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
vvod:
    cout<<"Введите количество элементов массива (четное число): "<< endl;
    cin>>n;
    if(n%2!=0)
        goto vvod;
    mas=new int[n];
    cout<<"Введите элементы массива: "<< endl;
    for(i=0; i<n; i++)
    {
    cout<<"["<<i<<"]=";
    cin>>mas[i];
    }   
    for(i=0; i<n; i++)
    {
        for(j=n-1; j>=i+1; j--)
            if(mas[j]<mas[j-1])
            {
                temp=mas[j];
                mas[j]=mas[j-1];
                mas[j-1]=temp;
            }
 
    }
    cout<<"Пары чисел с максимальной суммой произведения"<<endl;
    for(i=0; i<n; i+=2)
        cout<<mas[i]<<"  "<<mas[i+1]<<endl;
    cout<<"Пары чисел с минимальной суммой произведения"<<endl;
    for(i=0; i<n/2; i++)
        cout<<mas[i]<<"  "<<mas[n-1-i]<<endl;
 
    system("pause");
    return 0; 
}
Yandex
Объявления
01.11.2009, 21:08     Подскажите решение...
Ответ Создать тему
Опции темы

Текущее время: 23:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru