Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
SoulC++
0 / 0 / 0
Регистрация: 27.09.2011
Сообщений: 13
#1

C++, Задача про лесенку, помогите пожалуйста. - C++

29.09.2011, 19:03. Просмотров 1908. Ответов 1
Метки нет (Все метки)

Лесенка
На каждой из n + 2 ступенек лестницы записано целое число, причем на первой и на последней ступеньке записано число 0. На первой ступеньке стоит человек, которому необходимо подняться на последнюю ступеньку. За один шаг он может подниматься на любое число ступенек, не превосходящее k.

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

Пример входных данных
3
1 -1 1
2
Пример выходных данных
2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <algorithm>
using namespace std;
 
int n, k, i, j;
int a[100001];
int main () {
    scanf("%d", &n);
    for(i = 0; i < n; i++)
        a[i] = 0;
    for(i = 1; i <= n; i++)
        scanf("%d", &a[i]);
    scanf("%d", &k);
    for(i = n; i >= 1; i--)
        for(j = i+1; j < i+k; j++)
            a[i] += max(a[j], a[j++]);
    
    
    
    printf("%d\n", a[1]);
    return 0;
}
вроде все верно, но где промах?Идея не та? Или путаница в указателях?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2011, 19:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C++, Задача про лесенку, помогите пожалуйста. (C++):

Подсчитать суммарное количество подтягиваний в лесенку. Работа с файлами. - C++
1.1. Подтягивание Входной файл input.txt Выходного файл output.txt Ограничение по времени: 1 секунда Ограничение по памяти: 64...

Расскажите пожалуйста про флаги - C++
Доброго времени суток. Помогите пожалуйста разобраться с фалагми. Вот код: #include &lt;iostream&gt; #define ID_F 1001 #define ID_D 1002 ...

Обясните пожалуйста все про классы в С++ - C++
Потолковее и доходчиво,а то читаю С++ сам изучаю вапще тема не понятна

Исправьте прогу, пожалуйста! Прога про массивы.... - C++
Задача:Написать программу. Размерности массивов вводить с клавиатуры. Элементы массивов по желанию пользователя вводить с клавиатуры или...

Помогите с задачей про списки. - C++
Здравствуйте!) У меня есть список, в котором находится строка, например, &quot;ab(cd)&quot;. Мне нужно, чтобы в этому списке парные скобки(то есть...

Поясните, пожалуйста, несколько моментов про выделение памяти - C++
Ребят объясните: int* a; a = new a(1); в первой строке указатель ссылается на какуюто память, те она уже выделена и занять ее ни кто...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.09.2011, 06:07 #2
Цитата Сообщение от SoulC++ Посмотреть сообщение
Идея не та?
идея не та.

Цитата Сообщение от SoulC++ Посмотреть сообщение
for(i = n; i >= 1; i--)
for(j = i+1; j < i+k; j++)// вот тут сразу же при i==n идет выход за границы массива
a[i] += max(a[j], a[j++])
Но не это самое главное. Даже если Вы исправите выход за границу массива у Вас все равно ничего не получится. Ведь в этой строке:
Цитата Сообщение от SoulC++ Посмотреть сообщение
a[i] += max(a[j], a[j++]);
Вы изменяете значение самой ступеньки a[i] и дальнейший результат у Вас абсолютно никак не зависит от значений ступенек.
Для расчета результата (в том числе и промежуточного) заводите второй масив.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2011, 06:07
Привет! Вот еще темы с ответами:

Подскажите пожалуйста где можно почитать про структуры - C++
Подскажите пожалуйста где можно почитать про структуры Добавлено через 1 минуту Структуры – это составные типы данных, построенные с...

задача про графы - C++
Написать программу отыскания кратчайших путей между всеми парами вершин ориентированного графа по его списковому представлению

Задача про матрицу - C++
Вообщем завтра сдать надо бы по хорошему. Мне осталось сделать 1 задачу, которую я не знаю как делать. Может напишет кто-нибудь,...

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


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

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

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