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

Объясните условие - C++

Восстановить пароль Регистрация
 
2008kedr2008
3 / 3 / 0
Регистрация: 16.11.2010
Сообщений: 165
26.11.2011, 14:52     Объясните условие #1
Имеются числа А1,А2,...,АN и B1,B2,...,BN. Составить из них N пар (Аi, Bj) таким образом, чтобы сумма произведений пар была максимальна (минимальна). Каждое Ai и Bj в парах встречаются ровно по одному разу.
Что значит сумма произведений пар была
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mc_sh
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 8
26.11.2011, 14:59     Объясните условие #2
ну я так понял - что пары надо свести так что-бы после того как помножишь каждую пару(например A1 на B5) а потом сложиш все результаты множеня каждой из пар, то сумма будет один раз максимальная а другой раз минимальная.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
26.11.2011, 15:17     Объясните условие #3
Я это задание понимаю как нахождение пар чтобы число при умножении чисел в паре было max и во втором случае min. Ну или в виде кода как я это понимаю:
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
#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;
 
void print(int* x,int n)
{
    for(int j=0;j<n;j++)
     cout<<setw(3)<<*x++;
    cout<<'\n';
}
int main()
{
    int n;
    cin>>n;
    int a[n],b[n];
    for (int i=0;i<n;i++)
     a[i]=rand()%10,b[i]=rand()%20;
 
    print (a,n);
    print (b,n);
 
    sort(a,a+n),sort(b,b+n);
 
    cout<<"MAX:\n";
    for (int k=n-1;k>=0;k--)
     cout<<a[k]<<'*'<<b[k]<<'\t';
 
    cout<<"\nMIN:\n";
        for (int k=0;k<n;k++)
     cout<<a[k]<<'*'<<b[(n-1)-k]<<'\t';
}
2008kedr2008
3 / 3 / 0
Регистрация: 16.11.2010
Сообщений: 165
26.11.2011, 15:21  [ТС]     Объясните условие #4
Цитата Сообщение от Gepar Посмотреть сообщение
Я это задание понимаю как нахождение пар чтобы число при умножении чисел в паре было max и во втором случае min. Ну или в виде кода как я это понимаю:
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
#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;
 
void print(int* x,int n)
{
    for(int j=0;j<n;j++)
     cout<<setw(3)<<*x++;
    cout<<'\n';
}
int main()
{
    int n;
    cin>>n;
    int a[n],b[n];
    for (int i=0;i<n;i++)
     a[i]=rand()%10,b[i]=rand()%20;
 
    print (a,n);
    print (b,n);
 
    sort(a,a+n),sort(b,b+n);
 
    cout<<"MAX:\n";
    for (int k=n-1;k>=0;k--)
     cout<<a[k]<<'*'<<b[k]<<'\t';
 
    cout<<"\nMIN:\n";
        for (int k=0;k<n;k++)
     cout<<a[k]<<'*'<<b[(n-1)-k]<<'\t';
}
код не обязателен конечно но все ровно спасибо=))
Yandex
Объявления
26.11.2011, 15:21     Объясните условие
Ответ Создать тему
Опции темы

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