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

[Массив] Эдди Морра и русская мафия

29.08.2019, 20:57. Показов 3514. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, суть задачи на фото показано, буду рад если поможите
Вложения, ожидающие проверки
Тип файла: png Снимок.PNG
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2019, 20:57
Ответы с готовыми решениями:

Мафия
Всем известно, что главное в игре «мафия» - чаты сообщений. Андрей считает игру протестированной, если в чатах суммарно будет написано хотя...

Простенькая игра мафия
Здравствуйте,хочу создать игру "Мафия"(Чтобы просто играть со знакомыми,хочу свой клиент,все сам настроить как хочу.), само собой,...

Мафия 2 тормозит в Windows 7
ребят, вопрос в следующем, я играю в мафия 2, недавно играл на Windows xp sp3, все было относительно нормально, на днях поставил Windows 7...

11
29.08.2019, 21:54
 Комментарий модератора 
П.5.18.Правил
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
Перепечатайте
0
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
29.08.2019, 21:56
Лучший ответ Сообщение было отмечено Xait как решение

Решение

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
int main()
{
    int N;
    cin >> N;
    int* arr = new int[N];
    for (int i = 0; i < N; i++)
        cin >> arr[i];
 
    int goodBiggestIndex = -1, goodSmallestIndex = -1, goodDiff = -1;
    for(int i = 0; i < N; i++)
        for (int j = i; j < N; j++)
        {
            if (arr[i] >= arr[j])
                continue;
            if (arr[j] - arr[i] <= goodDiff)
                continue;
 
            goodBiggestIndex = j;
            goodSmallestIndex = i;  
            goodDiff = arr[j] - arr[i];
        }
    if (goodDiff == -1)
    {
        std::cout << 0 << " " << 0;
    }
    else
    {
        std::cout << goodSmallestIndex + 1 << " " << goodBiggestIndex + 1;
    }
 
    return 0;
}
1
2 / 2 / 0
Регистрация: 04.11.2017
Сообщений: 58
29.08.2019, 22:14  [ТС]
спасибо, очеень помогли))
0
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
29.08.2019, 22:46
Без массива:
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
#include <iostream>
 
int main() {
    size_t n;
    std::cin >> n;
    uint32_t buff, diff(0);
    std::pair<uint32_t, size_t> min(UINT32_MAX, 0);
    size_t ilhs(0), irhs(0);
 
    for (int i = 0; i < n; ++i) {
        std::cin >> buff;
        if (buff < min.first) {
            min = { buff, i };
        }
        else if (buff - min.first > diff) {
            ilhs = min.second + 1;
            irhs = i + 1;
            diff = buff - min.first;
        }
    }
 
    std::cout << ilhs << ' ' << irhs << '\n';
    return 0;
}
1
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
30.08.2019, 08:31
Цитата Сообщение от nalbe666 Посмотреть сообщение
Без массива:
Цитата Сообщение от Xait Посмотреть сообщение
[Массив]
Ничего не имею против, но делал именно по описанию ТС
0
2 / 2 / 0
Регистрация: 04.11.2017
Сообщений: 58
01.09.2019, 10:00  [ТС]
nalbe666, kitsoRik, попробовал оба варианта решений но у них одно и таже ошибка не знаю почему после 7 теста говорить ошибка


Сам тоже попробовал этого решить вот что написал, доходит до 11 теста и говорить что Превышено максимальное время работы

Поможите оптимизировать???


Кликните здесь для просмотра всего текста
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
#include<iostream>
#include <vector>
using namespace std;
int main() 
{
    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
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
01.09.2019, 10:14
Текст задачи-то где?)
0
2 / 2 / 0
Регистрация: 04.11.2017
Сообщений: 58
01.09.2019, 11:12  [ТС]
nalbe666, Вот текст задачи простое изб. https://www.cyberforum.ru/atta... 1567101377

Добавлено через 1 минуту
После приема очередной таблетки NZT у Эдди Морра появилась великолепная идея — взять
деньги у русского гангстера и преумножить их. Договорившись о встрече с Геннадием, Эдди взял в
долг $100 000. Как же в короткий срок заработать писателю, располагающему немаленькой суммой?
Подумав немного, Эдди понял, что может предсказать курс акций Одной Очень Нестабильной
Компании (ООНК) на ближайшие N дней.
К сожалению, пока новоиспеченный брокер занимался прогнозированием, действие NZT закончилось, а у него совсем не осталось таблеток. Так как с NZT в последнее время наблюдаются трудности, а Эдди наслышан о страшных последствиях прекращения приема, заниматься покупкой и
продажей акций ООНК придется вам (пока Эдди занимается покупкой NZT). Помогите Эдди избежать неприятного разговора с Геннадием: найдите день, в который следует купить акции, и день, в
который следует их продать. Разумеется, продавать акции можно только после покупки.
В силу технических особенностей биржи купить и продать акции вы можете только один раз.
Имейте в виду, что Эдди уже придумал ранее, как можно купить нецелое число акций.
И, конечно же, чем больше прибыли вы получите, тем меньше проблем подарит Геннадий Эдди.
Формат входных данных
В первой строке задано число N — количество дней (1 <= N <= 100 000). Во второй строке задано
N натуральных чисел ai (1 <= i <= N, 1 <= ai <= 5000), обозначающих стоимость акций ООНК (в $) в
i-й день.
Формат выходных данных
Выведите два числа: первое — номер дня, в который следует купить акции, второе — номер дня,
в который акции следует продать. Дни нумеруются с единицы.
Если максимальную прибыль можно получить несколькими способами, выведите любой. Если
же прибыль получить не удастся, выведите 2 нуля.

Примеры
ввод: 6
6 5 4 3 2 1
Вывод: 0 0


Ввод: 5
10 4 2 11 8
Вывод: 3 4


Замечание
В первом примере прибыль получить не удастся вне зависимости от выбранных дней. Во
втором примере выгоднее всего купить акции в 3-й день и продать в 4-й. Тогда Эдди получит
$100000
$2 · $11 − $100000 = $450000.
0
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
01.09.2019, 12:05
Лучший ответ Сообщение было отмечено 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
#include <iostream>
 
int main() {
    size_t n;
    std::cin >> n;
    uint32_t buff;
    double diff(1.);
    std::pair<uint32_t, size_t> min(UINT32_MAX, 0);
    size_t ilhs(0), irhs(0);
 
    for (size_t i = 0; i < n; ++i) {
        std::cin >> buff;
        if (buff < min.first) {
            min = { buff, i };
        }
        else if (1. * buff / min.first > diff) {
            ilhs = min.second + 1;
            irhs = i + 1;
            diff = 1. * buff / min.first;
        }
    }
 
    std::cout << ilhs << ' ' << irhs << '\n';
    return 0;
}
1
2 / 2 / 0
Регистрация: 04.11.2017
Сообщений: 58
01.09.2019, 12:21  [ТС]
nalbe666, Спасибо вам огромное, спервого раза все отлично, можете помочь и с этой задачой??
Массив: Последнее дело Оушена. Составьте маршрут, следуя которому, Оушен успеет ограбить все банки.
0
01.09.2019, 12:23

Не по теме:

Xait, Почему нет, побью рекорд по невнимательности на этой неделе.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2019, 12:23
Помогаю со студенческими работами здесь

Описать игру мафия на языке java
Добрый вечер. Нужна помощь. Задание: создать классы, описывающие игру мафия. Минимум 3-5 класса.

Написание программы (Мафия) для Windows
Здравствуйте уважамые форумчане, хочу написать программу в помощь ведущему для игры в мафию, мафия это игра где собирается 10-15 человек...

Игра в мафию, вероятность вытащить карту "мафия"
Всем привет! Возник следующий вопрос. Человек играет в мафию, где он каждую игру выбирает карту, он может достать карту &quot;мирного...

Алгоритм выдачи роли в игре "Мафия"
Вообщем, встал перед такой вот проблемой: Игроков может быть X&gt;8. Мафия: 1 к 4, комиссары: 1 к 2 мафам, доктор (1 к 1 ком) - 1. Так...

Оптимизация кода сервера (игра "Мафия")
Здравствуйте, пишу сервер для игры мафия. Я только начал, так что это ещё не весь код. Подскажите пожалуйста, можно ли его как-нибудь...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
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