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

Распределить участников обсуждений за круглым столом с максимальной активностью - C++

Восстановить пароль Регистрация
 
PineappleDread
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 5
24.10.2016, 11:35     Распределить участников обсуждений за круглым столом с максимальной активностью #1
Имя входного файла: table.in
Имя выходного файла: table.out
Ограничение времени: 1 с
Ограничение реального времени: 5 с
Ограничение памяти: 256M
Оставшиеся посылки: 10



Условие задачи

Возрождая древние традиции английских рыцарей, в одном городе члены школьного клуба любителей информатики каждую неделю собираются за круглым столом и обсуждают результаты последних соревнований.
Руководитель клуба Иван Петрович недавно заметил, что не все ребята активно участвуют в обсуждении. Понаблюдав за несколькими заседаниями клуба, он заметил, что активность члена клуба зависит от того, кто с кем сидит рядом.
В клуб приходят на занятия m мальчиков и n девочек. Иван Петрович заметил, что мальчик активно участвует в обсуждении только тогда, когда непосредственно рядом с ним с обеих сторон от него сидят девочки, а девочка активно участвует в обсуждении только тогда, когда непосредственно рядом с ней с одной стороны от нее сидит мальчик, а с другой — девочка.
Желая сделать заседание клуба как можно более интересным, Иван Петрович решил разместить участников за круглым столом таким образом, чтобы как можно больше членов клуба приняло активное участие в обсуждении.
Требуется написать программу, которая по заданным числам m и n выведет такой способ размещения m мальчиков и n девочек за круглым столом, при котором максимальное количество членов клуба будет активно участвовать в обсуждении.
Формат входного файла

Входной файл содержит два целых числа m и n, разделенных ровно одним пробелом (0 ≤ m ≤ 1000, 0 ≤ n ≤ 1000, m + n ≥ 3).
Формат выходного файла
Выходной файл должен содержать строку с расположенными в некотором порядке m символами «B» (заглавная латинская буква) и n символами «G» (заглавная латинская буква). Символ «B» означает мальчика, а символ «G» — девочку.
Символы следует расположить в том порядке, в котором нужно разместить членов клуба вокруг стола. Соседние символы соответствуют членам клуба, которые сидят рядом. Рядом сидят также члены клуба, соответствующие первому и последнему символу выведенной строки.

P.S.:можно как на C++,так и на паскале.Заранее благодарен.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2016, 11:35     Распределить участников обсуждений за круглым столом с максимальной активностью
Посмотрите здесь:

Прошу помочь распределить время на изучение C++ C++
Нужно создать таблицу с именами и набранными очками участников игры C++
C++ Память распределить динамически
В файле data.dat хранятся фамилия и годы рождения участников. найти средний возраст участников C++
C++ Распределить и распечатать значения из файла
Распределить числа в порядке убывания C++
C++ Определить среднее количество участников олимпиады из одной школы
Программа по сортировке участников C++
C++ Как правильно распределить динамическую память?
C++ Распределить участников по местам
C++ Распределить код на функции
C++ Матрицы: распределить участников турнира по убыванию набранных очков

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1918 / 1030 / 71
Регистрация: 29.03.2010
Сообщений: 3,165
24.10.2016, 11:40     Распределить участников обсуждений за круглым столом с максимальной активностью #2
ну так это больше вопрос по алгоритмике, нежели по программированию, имхо ветка не та...
GbaLog-
Не Эксперт C++
1891 / 740 / 202
Регистрация: 24.08.2014
Сообщений: 2,915
Записей в блоге: 1
Завершенные тесты: 2
24.10.2016, 11:49     Распределить участников обсуждений за круглым столом с максимальной активностью #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
43
44
45
46
47
48
49
50
51
/////////////////////////////////////////////////////////////////////////////////////////
// m - мальчики
// n - девочки
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    int n{};
    int m{};
    
    std::cin >> m >> n;
    
    bool girl = true;
    bool girl2 = false;
    bool boy = false;
    
    while( n || m )
    {
        if( girl )
        {
            if( n )
            {
                std::cout << 'G';
                --n;
            }
            girl = false;
            girl2 = true;
        }
        if( girl2 )
        {
            if( n )
            {
                std::cout << 'G';
                --n;
            }
            girl2 = false;
            boy = true;
        }
        if( boy )
        {
            if( m )
            {
                std::cout << 'B';
                --m;
            }
            girl = true;
            boy = false;
        }
    }
}
Yandex
Объявления
24.10.2016, 11:49     Распределить участников обсуждений за круглым столом с максимальной активностью
Ответ Создать тему
Опции темы

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