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

Определить, сможет ли герой пройти на следующий уровень игры (победить всех драконов, не умирая ни разу)

27.11.2016, 21:19. Показов 3615. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кирито застрял на очередном уровне MMORPG, в которую он играет. Чтобы пройти игру дальше, ему нужно победить всех n драконов, которые живут на этом уровне. Как Кирито, так и драконы обладают силой, которая выражается целым числом. В схватке между двумя противниками исход схватки определяется их силой. Изначально сила Кирито равна s.

Если Кирито вступает в схватку с i-ым (1 ≤ i ≤ n) драконом и его сила не больше, чем сила этого дракона xi, то Кирито проигрывает схватку и умирает. Если же сила Кирито больше, чем сила дракона, то он побеждает дракона и получает бонус — его сила увеличивается на yi.

Кирито может сражаться с драконами в произвольном порядке. Определите, сможет ли он пройти на следующий уровень игры, то есть победить всех драконов, не умирая ни разу.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.11.2016, 21:19
Ответы с готовыми решениями:

Определить, сможет ли игрок победить за один ход, если пошлёт в бой одновременно всех своих существ
Макс участвует в турнире по компьютерной игре Hearthstone. Цель игры довольно проста: имея в распоряжении колоды, составленные из существ и...

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

Сможет ли шар радиуса R пройти
Сможет ли шар радиуса R пройти в ромбообразное отверстие со стороной P и острым углом Q?

2
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
28.11.2016, 10:59
Лучший ответ Сообщение было отмечено Mitya55 как решение

Решение

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
//Кирито застрял на очередном уровне MMORPG, в которую он играет.
//Чтобы пройти игру дальше, ему нужно победить всех n драконов,
//которые живут на этом уровне. Как Кирито, так и драконы обладают силой,
//которая выражается целым числом. В схватке между двумя противниками
//исход схватки определяется их силой. Изначально сила Кирито равна s.
 
//Если Кирито вступает в схватку с i-ым (1 ≤ i ≤ n) драконом и его сила
//не больше, чем сила этого дракона xi, то Кирито проигрывает схватку и
//умирает. Если же сила Кирито больше, чем сила дракона, то он побеждает
//дракона и получает бонус — его сила увеличивается на yi.
 
//Кирито может сражаться с драконами в произвольном порядке. Определите,
//сможет ли он пройти на следующий уровень игры, то есть победить всех
//драконов, не умирая ни разу.
 
//ВХОДНЫЕ ДАННЫЕ
//Первая строка содержит два целых числа s и n (1 ≤ s ≤ 104, 1 ≤ n ≤ 103),
//разделенные пробелом. Далее следуют n строк: i-ая строка содержит целые
//числа xi и yi (1 ≤ xi ≤ 104, 0 ≤ yi ≤ 104), разделенные пробелом — силу
//i-го дракона и бонус за победу над ним.
 
//ВЫХОДНЫЕ ДАННЫЕ
//В единственной строке выведите «YES» (без кавычек), если Кирито сможет
//пройти на следующий уровень, и «NO» (без кавычек), если не сможет.
 
//ПРИМЕРЫ
//Входные данные
//2 2
//1 99
//100 0
 
//Выходные данные
//YES
 
//Входные данные
//10 1
//100 100
 
//Выходные данные
//NO
 
//ПРИМЕЧАНИЕ
//В первом примере сила Кирито изначально равна 2. Поскольку сила первого
//дракона меньше 2, то Кирито может с ним сразиться и победить его.
//После этого он получает бонус и его сила возрастает до 2 + 99 = 101.
//Теперь он может победить второго дракона и пройти на следующий уровень.
//Во втором примере сила Кирито слишком мала, чтобы он мог сразиться с
//единственным драконом и победить.
///////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <vector>
///////////////////////////////////////////////////////////////////////////////
typedef std::vector     < int   >   T_int_values;
///////////////////////////////////////////////////////////////////////////////
bool    wins
    (
        int                 strength,
        T_int_values    &   dragons_s,
        T_int_values    &   dragons_bonuses
    )
{
    while   (
                !dragons_s.empty()
            )
    {
        bool    amended     {};
        int     bonus_best  {};
        int     i_best      {};
 
        for( size_t  i{}; i < dragons_s.size(); ++i )
        {
            if  (
                        strength    >   dragons_s[i]
 
                    &&  (
                                i                   ==  0
                            ||  dragons_bonuses[i]  >   bonus_best
                        )
                )
            {
                bonus_best  =   dragons_bonuses[i];
                i_best      =   i;
                amended     =   true;
            }
        }//for
 
        if( !amended )
        {
            return  false;
        }
 
        strength    +=  bonus_best;
 
        dragons_s.erase         (
                                    dragons_s.begin         ()  +   i_best
                                );
 
        dragons_bonuses.erase   (
                                    dragons_bonuses.begin   ()  +   i_best
                                );
    }//while
 
    return  true;
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    int     strength    {};
    int     n           {};
 
    std::cin    >>  strength
                >>  n;
 
    T_int_values    dragons_s           (n);
    T_int_values    dragons_bonuses     (n);
 
    for( int  i{}; i < n; ++i )
    {
        std::cin    >>  dragons_s           [i]
                    >>  dragons_bonuses     [i];
    }//for
 
    std::cout   <<  (
                        wins    (
                                    strength,
                                    dragons_s,
                                    dragons_bonuses
                                )
                            ?   "YES"
                            :   "NO"
                    )
 
                <<  std::endl;
}
2
28.11.2016, 11:50
 Комментарий модератора 
Mitya55, пожалуйста, прочитайте правила форума.
Особое внимание обратите на пункт 4.3 (порядок именования тем).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2016, 11:50
Помогаю со студенческими работами здесь

Сможет ли шар пройти в отверстие?
Сможет ли шар радиуса R пройти в ромбообразное отверстие со стороной P и острым углом Q?

Пройти уровень, головоломка
Передираю уровни для игры. Для открытия уровня нужно пройти предыдущий. Дошел до 14 и кажется что он не проходим.

Просчитать сможет ли параллелепипед пройти через стену
есть стена в которой отверстие в виде прямоугольника размеры отверстия висота(a) ширина(b) есть параллелепипед с размерами ...

Можно ли пройти по графу ни разу не побывав дважды в одной вершине
нужен алгоритм который покажет, можно ли пройти по графу ни разу не побывав дважды в одной вершине.

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru