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

Задача из олимпиады "Про спиннеры и не только" на с++

10.12.2019, 14:38. Показов 8038. Ответов 2

Студворк — интернет-сервис помощи студентам
Можно ли реализовать на с++ так, чтобы программа искала середины массивов так, чтобы сначала в приоритете были большие половины, а потом она переходила к меньшим?

В первом ряду кинотеатра N + 2 мест, крайние места заняты персоналом кинотеатра,но N мест посередине свободно. K школьников входят в зрительный зал по очереди, и,конечно же, каждый школьник достаёт спиннер и начинает его крутить до начала сеанса.Поэтому каждый школьник выбирает себе место как можно дальше от уже занятых мест. А именно, школьник находит самый большой свободный участок в ряду (любой, если таких несколько) и садится посередине него. Если число свободных мест на этом участке было нечётно, то школьник садится точно посередине участка, тогда слева и справа от него остаётся поровну свободных мест. Если же это число чётно, то школьник выбирает одно издвух свободных мест посередине, тогда с одной стороны от школьника будет на одно свободное место больше, чем с другой стороны.По данным числам N и K определите, сколько мест осталось свободными с двух сторон от школьника, который занял место последним (K-м по счёту). Программа получает на вход два целых числа N и K, 1≤K≤N≤10^18, и должнавывести два целых числа в порядке неубывания – количество свободных мест с двух сторон от школьника, который последним занял место в ряду.

Например, вводится 10 и 3. Тогда ответ будет 1 и 2, потому что после того, как два школьника сели на места, в залеостались группы свободных мест из 4, 2, 2 мест.Третий школьник садится посередине группы из 4 мест, поэтому с одной стороны от него 1 место, с другой стороны – 2 места.
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2019, 14:38
Ответы с готовыми решениями:

Задача с олимпиады
Приветствую! Попалась задачка такая на олимпиаде...решить сразу не смог, решил сфоткать и попробовать сделать дома, но... увы, ничего... ...

Задача из олимпиады
Кратко: Первый символ строки - ноль. Далее идёт процесс составления "бесконечной" последовательности: скопировать содержимое...

Задача из олимпиады
Здравствуйте уважаемые форумники. На днях столкнулся с задачкой из одной олимпиады и хотел бы вас попросить помочь мне в решении, т.к. в...

2
2 / 2 / 0
Регистрация: 06.11.2019
Сообщений: 2
12.12.2019, 16:18  [ТС]
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
#include <iostream>
using namespace std;
 
int main()
{
    system("chcp 1251 >> null");
    unsigned long long int N, K, left, right, i1 = 0, i2 = 0, sum = 0, max = 0;
    cout << "Введите количество мест N в ряду: ";
    cin >> N;
    cout << "Введите количество школьников К: ";
    cin >> K;
    unsigned long long int* a = new unsigned long long int[N + 2];
    a[0] = 8; a[N + 1] = 8; // NPC по бокам
    for (unsigned long long int i = 1; i <= N; i++)
        a[i] = 0;
    while (K > 0)
    {
        for (unsigned long long int i = 0; i <= N + 1; i++)
        {
            if (a[i] == 0)
                sum = sum + 1;
            else
            {
                if (sum > max)
                {
                    i1 = i - 1 - sum;
                    i2 = i;
                    max = sum;
                }
                sum = 0;
            }
        }
        a[(i1 + i2) / 2] = 2;
        sum = 0;
        max = 0;
        K = K - 1;
    }
 
    a[(i1 + i2) / 2] = 3;
    left = (i1 + i2) / 2 - (i1 + 1);
    right = (i2 - 1) - (i1 + i2) / 2;
    cout << endl << "Получившийся ряд: ";
    for (unsigned long long int i = 0; i <= N + 1; i++)
        cout << a[i] << " ";
    cout << endl << "Слева: " << left << endl << "Справа: " << right << endl;
}
1
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 6
06.05.2021, 22:16
Здравствуйте, а можно, пожалуйста, решение этой же задачи на Java?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.05.2021, 22:16
Помогаю со студенческими работами здесь

Задача из олимпиады
Евгений — логист, и у него есть n товаров. За продажу i-го товара компания получит ai монет прибыли (она может быть и отрицательной). В...

Задача с олимпиады
X мальчиков и Y девочек пошли в кинотеатр и купили билеты на подряд идущие места в одном ряду. Напишите программу, которая выдаст, как...

Задача из олимпиады
Константин только что въехал в свою новую комнату в общежитии. Теперь он хочет подключить все свои m электроприборов к имеющимся в...

Задача с городской олимпиады
Добрый день, помогите с решением задачи. Сегодня на олимпиаде решал, так и не удалось. Интерес не удовлетворен, поэтому прошу помощи. ...

Задача для олимпиады
Заяц устроился на работу инспектором в мотоклуб и заступает на дежурство каждые восьмые сутки. Волк считает себя лихим гонщиком и потому...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru