С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.12.2021
Сообщений: 1

задача про кузнечика

08.12.2021, 13:37. Показов 2801. Ответов 0

Студворк — интернет-сервис помощи студентам
В одной из горных долин под ясным и чистым небом располагалось небольшое озеро. На водной глади озера в ряд плавали несколько кувшинок. На каждой кувшинке существовало некоторое количество волшебной травы. А на самой первой кувшинке сидел кузнечик. Как известно, кузнечики в той долине очень любят питаться волшебной травой. Но наш кузнечик может перемещаться вдоль кувшинок только в одну сторону. Кроме этого, он может перепрыгивать за раз либо через одну кувшинку, либо через две. Каждый раз, когда кузнечик оказывается на кувшинке, он забирает себе всю траву с неё. Цель кузнечика – собрать как можно больше травы. Вам известно, сколько кувшинок было на озере и сколько травы было на каждой кувшинке. Напишите программу, которая по этим данным выведет, какое максимальное количество волшебной травы может собрать кузнечик, добравшись до последней кувшинки.
Первая строка входного файла содержит единственное число N – количество кувшинок (0 ≤ N ≤ 105).

Во второй строке находятся N чисел, где каждое число Ti равно количеству травы на i-той кувшинке (-109 ≤ Ti ≤ 109).

решить используя только библиотеку iostream

Написал такой код, вроде работает, но на каком то из тестов проваливается из за слишком большого времени выполнения. Помогите, как можно оптимизировать этот код, или покажите более быстрый способ

Code
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
#include <iostream>
using namespace std;
 
int kuzn(int* a, int n, int i, int prig)
{
    int k = a[i] + a[i+prig];
    i += prig;
        if (a[i+3] > a[i+2] && n - (i + 3) != 1 && (i + 3) <= n)
        {
            k += a[i + 3];
            i += 3;
        }
        else
        {
            if (n - (i + 2) != 1)
            {
                k += a[i + 2];
                i += 2;
            }
            else
                if (n - (i + 3) != 1 && (i + 3) <= n)
                {
                    {
                        k += a[i + 3];
                        i += 3;
                    }
                }
    }
        return k;
}
 
int kuznechik(int* a, int n, int i)
{
    int k = a[i];
    while (i < n)
    {
        if (kuzn(a, n, i,3) > kuzn(a, n, i,2) && n - (i + 3) != 1 && (i + 3) <= n)
        {
            k += a[i + 3];
            i += 3;
        }
        else
        {
            if (n - (i + 2) != 1)
            {
                k += a[i + 2];
                i += 2;
            }
            else
                if (n - (i + 3) != 1 && (i + 3) <= n)
                {
                    {
                        k += a[i + 3];
                        i += 3;
                    }
                }
        }
    }
    return k;
}
 
int main()
{
 
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
 
    int n;
    cin >> n;
    int a[1000];
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
    }
    cout << kuznechik(a, n - 1, 0);
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2021, 13:37
Ответы с готовыми решениями:

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

Задача про Кузнечика
Здравствуйте! Помогите пожалуйста решить задачку: У одного из преподавателей параллели С в комнате живёт кузнечик, который очень любит...

Задача про кузнечика
Кузнечик посещает столбики, занумерованные от 1 до N. В начале Изначально он сидит на столбике с номером 1. Кузнечик может прыгнуть вперед...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.12.2021, 13:37
Помогаю со студенческими работами здесь

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

Решение задачи про кузнечика путём динамического программирования
Всем привет! Написал код для решения следующей задачи: Кузнечик Кузнечик прыгает по цветам, расположенным на прямой. На каждом...

Нужно разобраться с программой по динамическому программированиию про кузнечика и монеты
Помогите пожалуйста разобраться. Задание: Ограничение по времени, сек 2 Ограничение по памяти, мегабайт 64 Кузнечик прыгает...

задача про самолет (аналог задачи про рюкзак)
Мне хотелось бы, чтобы вы посоветовали и помогли мне, как правильно решить задачу. В самолет требуется погрузить n видов предметов,...

Задача про взлом кода из книги Эрика Фримена про основы javascript в конце 5 главы.
читаю книгу Эрика Фримена про основы javascript.В конце 5 главы есть задачка про взлом кода.Никак не могу понять как ее решить.НЕ понимаю...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru