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

Сколько легендарных команд можно создать из заданного числа людей? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычисление Arch(x) разложением в ряд Тейлора - C++ http://www.cyberforum.ru/cpp-beginners/thread1734451.html
нужно вычислить для функции . Arch(x) = log (2x) − 1/2·2·x^2 - 1·3/2·4·4·x^4 − 1·3·5/2·4·6·6·x^6 + ···, x > 1 Программа выводит не те значения, не могу понять в чем ошибка. Прошу вашей помощи: #include <iostream> #include <conio.h> #include <fstream> using namespace std; double arh(double x, double eps)
C++ Encrypting a File Добрый день. Взялся разбираться в данном примере и не пойму в чем ошибка. Может кто-то пользовался им и подскажет Encrypting a File MSDN Запускаю в командной строке $ myProg.exe' 1.txt 2.txt из кода: <example.exe> <source file> <destination file> <password>, где <password> не обязательный. на что получаю ответ: http://www.cyberforum.ru/cpp-beginners/thread1734450.html
C++ ошибки в коде
#include <iostream> #include <locale.h> using namespace std; class Massiv { public : int n,m;
Не совсем понимаю задания C++
Здравствуйте. Надо мне решить одну задачку, но я не совсем понимаю как должно быть Выходя из объекта-праотца "МНОГОУГОЛЬНИК"(Заданной площади S) построить объекты-наследники "ПРЯМОУГОЛЬНИК"(с заданной одной стороной b), "ТРЕУГОЛЬНИК"(с заданной одной стороной a) и обеспечить выдачу на печать название фигуры, её параметров. Определить методы вычисления периметра. Так вот, я создал класс...
C++ Реализовать однонаправленный список http://www.cyberforum.ru/cpp-beginners/thread1734399.html
Реализуйте однонаправленный список. Необходимо предусмотреть режим сортировки элементов списка без перестановки самих элементов.
C++ В массиве из 20 чисел найти наименьший среди отрицательных элементов помогите решить задачу, в массиве из 20 чисел найти наименьший среди отрицательных элементов подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2796 / 1572 / 246
Регистрация: 03.05.2010
Сообщений: 3,649
15.05.2016, 19:54     Сколько легендарных команд можно создать из заданного числа людей?
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
//Ничто не старит нас так, как годы. Много замечательных соревнований прошло,
//многие программисты — больше не студенты, и поэтому не могут участвовать
//в соревнованиях. Хотя их дух так же свеж и молод, как и годы назад! Поэтому
//однажды они решили организовать в Уральском государственном университете
//соревнование среди лучших команд прошлых лет…
//Чтобы сделать соревнование интересным, они решили пригласить как можно больше
//"легендарных" команд. Жюри подготовило список команд, показывавших лучшие
//результаты в старые добрые времена, тем самым заслуживших право называться
//"легендарными". Все эти команды были приглашены на соревнование, и все они
//приняли приглашение. Но в жюри забыли одну важную вещь: в течение долгой
//истории соревнований в университете состав команд мог меняться, и некоторые
//программисты участвовали в составе различных "легендарных" команд. Тем не менее,
//жюри решило не оставлять исходную идею и сформировать для участия в соревновании
//как можно больше легендарных команд — и ваша программа должна помочь жюри!
 
//Исходные данные
//Первая строка содержит целое число K, 1 ≤ K ≤ 18 — количество легендарных команд.
//В следующих K строках следуют описания команд. Каждая строка содержит три имени
//членов соответствующей команды. Все имена записаны не более чем 20 строчными
//латинскими буквами.
 
//Результат
//Выведите максимально возможное количество легендарных команд, которые смогут
//одновременно участвовать в соревновании.
///////////////////////////////////////////////////////////////////////////////
#include <array>
#include <iostream>
#include <map>
#include <set>
#include <string>
#include <vector>
///////////////////////////////////////////////////////////////////////////////
static  const   int     TEAM_SIZE   =   3;
///////////////////////////////////////////////////////////////////////////////
typedef std::string                                         T_programmer;
typedef std::array      < T_programmer,  TEAM_SIZE      >   T_team;
typedef std::vector     < T_team        >                   T_teams;
typedef std::set        < T_programmer  >                   T_all_programmers;
typedef size_t                                              T_team_ind;
typedef size_t                                              T_progr_ind;
typedef std::map        < T_team_ind,   T_progr_ind     >   T_progr_ind_of_team_ind;
///////////////////////////////////////////////////////////////////////////////
bool    successfully_inc_progr_ind_or_clear_and_return_false
    (
        T_teams             const   &   teams,
        T_all_programmers           &   all_programmers,
        T_progr_ind_of_team_ind     &   progr_ind_of_team_ind,
        int                             team_ind
    )
{
    auto    &   progr_ind_ref   =   progr_ind_of_team_ind[ team_ind ];
 
    if( progr_ind_ref )
    {
        all_programmers.insert
            (
                teams[ team_ind ][ progr_ind_ref - 1 ]
            );
    }//if
 
    ++progr_ind_ref;
 
    for (
            ;
            progr_ind_ref   <=  TEAM_SIZE;
            ++progr_ind_ref
        )
    {
        auto    const   &   cur_progr   =   teams[ team_ind ][ progr_ind_ref - 1 ];
 
        if  (
                all_programmers.count( cur_progr )
            )
        {
            all_programmers.erase( cur_progr );
            return  true;
        }//if
    }//for
 
    progr_ind_ref   =   0;
    return  false;
}
///////////////////////////////////////////////////////////////////////////////
int     teams_count_max
    (
        T_teams             const   &   teams,
        T_all_programmers               all_programmers
    )
{
    int     res{};
 
    if  (
            !teams.size()
        )
    {
        return  res;
    }//if
 
    int     team_ind_max
                {
                        int (
                                teams.size()
                            )
 
                    -   1
                };
 
    T_progr_ind_of_team_ind     progr_ind_of_team_ind;
 
    for (
            int  team_ind{};;
        )
    {
        if  (
                successfully_inc_progr_ind_or_clear_and_return_false
                    (
                        teams,
                        all_programmers,
                        progr_ind_of_team_ind,
                        team_ind
                    )
            )
        {
            if  (
                        !res
 
                    ||      team_ind    +   1
                        >   res
                )
            {
                res     =   team_ind    +   1 ;
            }//if
 
            if  (
                        team_ind
                    ==  team_ind_max
                )
            {
                break;
            }//if
 
            ++team_ind;
        }
        else
        {
            if  (
                    team_ind    ==  0
                )
            {
                break;
            }
 
            --team_ind;
        }//else
    }//for
 
    return  res;
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    int                 teams_total{};
    std::cin    >>      teams_total;
 
    T_teams             teams( teams_total );
    T_all_programmers   all_programmers;
 
    for (
            auto    &   team    :
            teams
        )
    {
        for (
                auto    &   programmer  :
                team
            )
        {
            std::cin    >>  programmer;
            all_programmers.insert( programmer );
        }//for
    }//for
 
    std::cout   <<  teams_count_max
                        (
                            teams,
                            all_programmers
                        )
 
                <<  std::endl;
}
 
Текущее время: 10:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru