Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 20.02.2016
Сообщений: 18

Набор максимально гармоничного состава для ансамбля

20.02.2016, 08:25. Показов 1518. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если в прошлой задаче были хоть какие-то идеи, то тут я вообще без понятия.

Ансамбль песни и пляски «Четверочка» проводит очередной кастинг, в котором традиционно участвуют представители четырех городов. В итоговый состав должно войти 4 человека — по одному из каждого города. Организаторы кастинга всегда стараются набрать как можно более гармоничную группу. В их представлении группа тем более гармонична, чем меньше разница в весе участников (т.е. разница между самым тяжелым и самым легким участником группы).
В кастинге участвует N1 человек из 1-ого города, N2 из 2-ого, N3 из 3-его и N4 из 4-ого . Про каждого кандидата известен его вес (целое число от 1 до 100 000).
Помогите ансамблю набрать максимально гармоничный состав, то есть состав с минимальной разницей весов.
Формат ввода

Для каждого города i (i = 1, 2, 3, 4) сначала вводится число Ni кандидатов из этого города, далее в следующей строке — последовательность из Ni целых чисел, описывающих веса кандидатов. Информация обо всех четырех городах подается на вход последовательно, начиная с 1-ого и заканчивая 4-ым. Все вводимые числа целые, положительные и не превосходят 100 000.
Формат вывода

Выведите четыре целых числа — веса кандидатов из соответствующих городов, которых следует выбрать, чтобы получить наиболее гармоничный состав. Если ответов несколько, выведите любой.

Пример 1

Ввод
3
1 2 3
2
1 3
2
3 4
2
2 3
Вывод
3 3 3 3


Пример 2
Ввод
1
5
4
3 6 7 10
4
18 3 9 11
1
20
Вывод
5 6 9 20

Добавлено через 36 секунд
set() опять запрещен(
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.02.2016, 08:25
Ответы с готовыми решениями:

Реализация ансамбля/комитета сверточных нейронных сетей для распознавания образов?
Структура вопроса: дается обоснование актуальности использования сверточных нейронных сетей. И в конце вопрос о доступности open-source...

Среди множества наборов найти такой набор чисел, сумма которых равна N, а их произведение P максимально
аданное число N может быть представлено как сумма некоторого набора попарно несовпадающих натуральных чисел. Среди множества наборов найти...

Найти минимальное количество поездок машиниста для того, чтобы сформировать три состава
Текст задачи: Железнодорожное полотно разветвляется на два тупика В и С. К этому разъезду подходит состав (не более 255 вагонов)....

7
20.02.2016, 09:33

Не по теме:

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

0
0 / 0 / 0
Регистрация: 20.02.2016
Сообщений: 18
20.02.2016, 09:48  [ТС]
Это домашка такая, я не на олимпиаде)

Добавлено через 4 минуты
Да, я глупая и ничего в этом не смыслю, но я обратилась за помощью и меня оскорбляют за то, что я не знаю.
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
20.02.2016, 10:10

Не по теме:

Не думаю, что не решившим препод поставит двойку. Знал одного, который учился в физмат лицее и "решал" задания через форум. Даже на олимпиадах от лицея участвовал. Там он, естественно, ничего решить не мог и подводил и лицей и препода (который мог бы послать того, кто решал пусть не все задания, но сам).



Добавлено через 1 минуту
Цитата Сообщение от Дже Посмотреть сообщение
меня оскорбляют за то, что я не знаю.
Ой-ой-ой, какие мы нежные и нервные.
0
0 / 0 / 0
Регистрация: 20.02.2016
Сообщений: 18
20.02.2016, 14:07  [ТС]
Помогите, прошу, умоляю

Добавлено через 2 часа 27 минут
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main() {
    int N1, N2, N3, N4, candidate_weight;
    cin >> N1;
    vector <int> v1(N1);
    for (int i = 0; i < N1; ++i) {
        cin >> candidate_weight;
        v1[i] = candidate_weight;
    }
    sort(v1.begin(), v1.end());
    cin >> N2;
    vector <int> v2(N2);
    for (int i = 0; i < N2; ++i) {
        cin >> candidate_weight;
        v2[i] = candidate_weight;
    }
    sort(v2.begin(), v2.end());
    cin >> N3;
    vector <int> v3(N3);
    for (int i = 0; i < N3; ++i) {
        cin >> candidate_weight;
        v3[i] = candidate_weight;
    }
    sort(v3.begin(), v3.end());
    cin >> N4;
    vector <int> v4(N4);
    for (int i = 0; i < N4; ++i) {
        cin >> candidate_weight;
        v4[i] = candidate_weight;
    }
    sort(v4.begin(), v4.end());
    for (int i = v1.size()-1, j = 0, k = 0, z = 0; ;) {
            if (v1[i] <= v2[k] && v2[k] <= v3[z] && v3[z] <= v4[j]) {
                cout << v1[i] << " " << v2[k] << " " << v3[z] << " " << v4[j] << endl;
                return 0;
            } else {
                if (v1[i] > v2[k] && k < v2.size() - 1 ) {
                    ++k;
                }
                if (v1[i] > v2[k] && k == v2.size() - 1) {
                    --i;
                    k = 0;
                }
                if (v1[i] <= v2[k] && v2[k] > v3[z] && z < v3.size() - 1) {
                    ++z;
                }
                if (v1[i] <= v2[k] && v2[k] > v3[z] && z == v3.size() - 1) {
                    --i;
                    k = 0;
                    z = 0;
                }
                if (v1[i] <= v2[k] && v2[k] <= v3[z] && v3[z] > v4[j] && j < v4.size() - 1) {
                    ++j;
                }
                if (v1[i] <= v2[k] && v2[k] <= v3[z] && v3[z] > v4[j] && j == v4.size() - 1) {
                    --i;
                    k = 0;
                    z = 0;
                    j = 0;
                }
            }
    }
}
Добавлено через 51 секунду
Все, что я смогла придумать. Валится на 5 тесте. Ошибка: Wrong answer
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
20.02.2016, 15:49
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
//Ансамбль песни и пляски «Четверочка» проводит очередной кастинг, в котором традиционно
//участвуют представители четырех городов. В итоговый состав должно войти 4 человека —
//по одному из каждого города. Организаторы кастинга всегда стараются набрать как можно
//более гармоничную группу. В их представлении группа тем более гармонична, чем меньше
//разница в весе участников (т.е. разница между самым тяжелым и самым легким участником
//                           группы).
//В кастинге участвует N1 человек из 1-ого города, N2 из 2-ого, N3 из 3-его и N4 из 4-ого .
//Про каждого кандидата известен его вес (целое число от 1 до 100 000).
//Помогите ансамблю набрать максимально гармоничный состав, то есть состав с минимальной
//разницей весов.
//Формат ввода
 
//Для каждого города i (i = 1, 2, 3, 4) сначала вводится число Ni кандидатов из этого города,
//далее в следующей строке — последовательность из Ni целых чисел, описывающих веса
//кандидатов. Информация обо всех четырех городах подается на вход последовательно,
//начиная с 1-ого и заканчивая 4-ым. Все вводимые числа целые, положительные и
//не превосходят 100 000.
//Формат вывода
 
//Выведите четыре целых числа — веса кандидатов из соответствующих городов, которых
//следует выбрать, чтобы получить наиболее гармоничный состав. Если ответов несколько,
//выведите любой.
 
//Пример 1
 
//Ввод
//3
//1 2 3
//2
//1 3
//2
//3 4
//2
//2 3
//Вывод
//3 3 3 3
 
 
//Пример 2
//Ввод
//1
//5
 
//4
//3 6 7 10
 
//4
//18 3 9 11
 
//1
//20
//Вывод
//5 6 9 20
 
//set() запрещен
///////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <utility>
#include <vector>
///////////////////////////////////////////////////////////////////////////////
const   int     CITIES_TOTAL    =   4;
const   int     WEIGHT_MAX      =   100000;
///////////////////////////////////////////////////////////////////////////////
typedef std::pair       < int,  int             >   T_w_c_pair;
typedef std::vector     < T_w_c_pair            >   T_w_c_pairs;
typedef std::array      < int,  CITIES_TOTAL    >   T_group;
///////////////////////////////////////////////////////////////////////////////
void    print_harmonious_group( T_w_c_pairs     const   &   w_c_pairs )
{
    T_group     group_min{0};
    int         diff_min    =   WEIGHT_MAX;
    T_group     group{0};
 
 
    for( auto   &   w_c     :   w_c_pairs )
    {
        group[ w_c.second ]     =   w_c.first;
 
        if  (
                    std::find
                        (
                            group.begin     (),
                            group.end       (),
                            0
                        )
 
                ==  group.end()
            )
        {
            int     diff    =       *std::max_element
                                        (
                                            group.begin     (),
                                            group.end       ()
                                        )
 
                                -   *std::min_element
                                        (
                                            group.begin     (),
                                            group.end       ()
                                        );
 
            if  (
                        diff
                    <   diff_min
                )
            {
                diff_min    =   diff;
                group_min   =   group;
            }
        }
    }//for
 
    std::sort
        (
                group_min.begin                 (),
                group_min.end                   ()
        );
 
    std::copy
        (
            group_min.begin                 (),
            group_min.end                   (),
            std::ostream_iterator< int >    ( std::cout,    "\t" )
        );
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    T_w_c_pairs     w_c_pairs;
 
    for( int  i{}; i < CITIES_TOTAL; ++i )
    {
        int     n{};
        std::cin    >>  n;
 
        for( int  j{}; j < n; ++j )
        {
            int     w{};
            std::cin    >>  w;
            w_c_pairs.push_back( {w, i} );
        }//for
    }//for
 
    std::sort
        (
            w_c_pairs.begin     (),
            w_c_pairs.end       ()
        );
 
    print_harmonious_group( w_c_pairs );
}
1
0 / 0 / 0
Регистрация: 20.02.2016
Сообщений: 18
20.02.2016, 17:23  [ТС]
Mr.X, Все равно падает на 5 тесте
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
20.02.2016, 20:43
Цитата Сообщение от Дже Посмотреть сообщение
Mr.X, Все равно падает на 5 тесте
А по какой причине не проходит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.02.2016, 20:43
Помогаю со студенческими работами здесь

Выполнение утилиты ATTRIB из состава операционной системы MS-DOS или Windows для заданного файла...
Ребят, начинаю работать с элементами dos, собственно маленькое задание - &quot;Выполнение утилиты ATTRIB из состава операционной системы MS-DOS...

Движение ансамбля частиц в некоторой плоскости (схема Верлета)
Помогите запрограммировать ансамбль частиц,вдижущихся в некоторой плоскости(внутри прямоугольного куба или квадрата),движение должно...

Названия мелодий в исполнении ансамбля Moranbong Band (Моранбон)
Читая новости политики узнал о существовании северокорейского ансамбля &quot;Moranbong Band&quot;. Послушал немного. Песни впечатления не...

Найти сумму максимально отрицательного и максимально положительного элемента массива
Ребята, помогите, плиз)) найти суму максимально отрицательного и максимально положительного элемента массива

Что такое максимально полные и максимально пустые подграфы?
Что такое максимально полные и максимально пустые подграфы?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru