Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 04.11.2017
Сообщений: 58
1

Помогите Морфеусу узнать, сможет ли Нео убить ровно N агентов ударами левой и правой ноги

29.08.2019, 22:19. Показов 2039. Ответов 24
Метки нет (Все метки)

Здравствуйте, всем задача след.:

Морфеус и Нео готовятся к очередной схватке с армией агентов. Морфеус отвечает за разработку
всей операции, а Нео проявляет свои способности избранного. А именно — Нео будет наносить удары
по агентам либо правой, либо левой ногой. Правой ногой он нейтрализует сразу 5 агентов, а левой —
всего 3. Всего на бой выйдут N агентов. Морфеус ценит свои кадры, поэтому хочет заранее знать,
сколько ударов каждой ногой нанесет Нео при условии, что каждой ногой он может сделать не более
R ударов, чтобы не устать, и не менее L ударов, потому что даже в матрице надо тренироваться.
Помогите Морфеусу узнать, сможет ли Нео убить ровно N агентов ударами левой и правой
ноги. Если план невыполним, то выведите −1. Иначе выведите количество ударов сначала правой,
потом левой ногой.
Если решений несколько, выведите то, где правая нога совершает наименьшее возможное число
ударов.

Формат входных данных
В первой строке дано единственное целое число 0 <= N <= 106 — число агентов.
Во второй строке даны два целых числа 0 <= L <= R <= 1018 — ограничения на число ударов
каждой из ног.

Формат выходных данных
Если решения нет, выведите единственное число −1 Иначе выведите два целых числа — число
ударов правой и левой ногой.


Примеры
ввод: 13 1 2
вывод: 2 1

ввод: 2 0 100
вывод: -1

ввод: 30 2 10
вывод: 3 5
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2019, 22:19
Ответы с готовыми решениями:

При нажатии левой клавиши "мыши" отразить курсор в левой половине экрана, а при нажатии правой - в правой
При нажатии левой клавиши &quot;мыши&quot; отразить курсор в левой половине экрана, а при нажатии правой - в...

Анимация: человечек по желанию пользователей либо махает правой рукой, либо левой или правой ногой
написать программу, при помощи которой человечек будет по желанию пользователей либо махать правой...

Рисунки с левой и с-правой сторону
Подскажите как сделать рисунок с левой стороны и с правой? я сделал но у меня криво отображается...

ПравилА левой и правой руки
Помогите пожалуйста с правилами левой и правой руки со всеми тонкостями)) Постоянно путаю все....

24
1 / 1 / 0
Регистрация: 04.11.2017
Сообщений: 58
31.08.2019, 20:52  [ТС] 21
nalbe666, только до 8 задачи все правильно, а дальше уже нет(((

Добавлено через 58 минут
marat_miaki, nalbe666, след. код можно как - то оптимизировать?? просто он не проходит по временный шкале в 17 тесте
Кликните здесь для просмотра всего текста
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
#include<iostream>
 
#include <vector>
 
 
 
int main() {
 
    using namespace std;
 
    std::ios_base::sync_with_stdio(false);
 
    std::cin.tie(nullptr);
 
    int a, b = 0, x = 0;
 
    int profit = 0;
 
    int lastProfit = 0;
 
    bool first = false;
 
    cin >> a;
 
    vector<int> massiv(a);
 
    for (int j = 0; j < a; ++j) {
 
        cin >> massiv[j];
 
    }
 
for (int k = 0; k < a-1; ++k) {
 
        int c = k+1;
 
        for (int i = k + 1;  i < a; ++i) {
 
            if(massiv[i]>= massiv[c]){
 
                c=i;
 
            }
 
        }
 
        profit = 100000 / massiv[k] * massiv[c] - 100000;
 
            if (profit > lastProfit) {
 
                    lastProfit = profit;
 
                    b = k;
 
                    x = c;
 
                    first = true;
 
                }
 
 
 
    }
 
    if (first) {
 
        cout << b + 1 << " " << x + 1;
 
    } else {
 
        cout << 0 << " " << 0;
 
    }
 
 
 
 
 
    return 0;
 
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

812 / 500 / 210
Регистрация: 19.01.2019
Сообщений: 1,196
31.08.2019, 21:32 22
Лучший ответ Сообщение было отмечено Xait как решение

Решение

Кликните здесь для просмотра всего текста

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
#include <iostream>
#include <algorithm>
 
int main()
{
    uint64_t n, l, r;
    std::cin >> n >> l >> r;
 
    if (n / 8 < l) {
        std::cout << -1;
        return 0;
    }
    n -= l * 8;
    int64_t ulk = std::min(n / 3, r - l);
    uint64_t urk = std::min((n - ulk * 3) / 5, r - l);
    switch (n - ulk * 3 - urk * 5)
    {
    case 1:
        ulk -= 3, urk += 2;
        break;
    case 2:
        ulk -= 1, urk += 1;
        break;
    case 3:
        ulk -= 4, urk += 3;
        break;
    case 4:
        ulk -= 2, urk += 2;
        break;
    default:
        break;
    }
 
    if (ulk >= 0 && urk <= r - l && ulk * 3 + urk * 5 == n) {
        std::cout << l + urk << ' ' << l + ulk;
    }
    else {
        std::cout << -1;
    }
 
    return 0;
}


Текст-то другой задачи напишите.
1
1 / 1 / 0
Регистрация: 04.11.2017
Сообщений: 58
31.08.2019, 22:56  [ТС] 23
nalbe666, Круто этот ответ совпал и работает спасибо вам огромное ща проявленную труд)))
0
nalbe666
31.08.2019, 23:02
  #24

Не по теме:

Ошибка действительно была тупая, не поменял + на - :)

0
1 / 1 / 0
Регистрация: 04.11.2017
Сообщений: 58
31.08.2019, 23:10  [ТС] 25
nalbe666, можете помочь с этой задачой?
Последнее дело Оушена поможем ограбить банк
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2019, 23:10

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Отличие правой и левой свертки
Правую и левую свертку можно реализовать так: #!/usr/bin/racket #lang scheme (define...

Код левой и правой кнопки мышки
Нужны коды кнопок мышки, в Keys не нашёл. Я использую следующий код для захвата кнопок: protected...

Ввод текста в TEdit с правой стороны, а не с левой
Можнали сделать чтобы текст в редакторе Edit вводился не с левой части а с правой.

Работа с PopupMenu левой и правой кнопками мыши
В моем проекте требуется задать возможность менять пользователем названия осей координат (показаны...

Однозначная грамматика без правой и левой рекурсии
Всем привет! Сижу, зубрю системное программирование и наткнулся на такой вопрос: верно ли...

Горизонтальное выравнивание левой и правой колонок на сайте
Люди, помогите пожалуйста снова новичку :). Я продолжаю свле обучение и опять застрял : не понимаю...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.