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

Последовательность - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выведите все содержимое параметров операционной системы http://www.cyberforum.ru/cpp-beginners/thread376173.html
Выведите все содержимое параметров операционной системы, переданных main()
C++ Задача с односвязным и двухсвязным списком (сортировка). Условие: Структура содержит название издания, газета или журнал, цена экземпляра. Добавлять новые издания так, чтобы названия были упорядочены по алфавиту. Выполнить в двух вариантах, с односвязным и двухсвязным. Help! Добавлено через 5 часов 3 минуты up. Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread376165.html
C++ заменить каждую точку многоточием
Здравствуйте, помогите решить задачу с массивами и строками. Тема:массивы и строки. "В предложении заменить каждую точку многоточием."
Определить номера строк прямоугольной матрицы, содержащие только отрицательные элементы. C++
Здравствуйте, помогите решить задачу с массивами и строками. Тема: Массивы и Строки. Определить номера строк прямоугольной матрицы, содержащие только отрицательные элементы.
C++ Помогите пожалуйста Сколько раз в тексте встречается каждое слово? на Cи http://www.cyberforum.ru/cpp-beginners/thread376156.html
Помогите пожалуйста Сколько раз в тексте встречается каждое слово? на Cи
C++ list iterator template пишу в хэдере #include <list> using namespace std; template <class T> struct Transition { list<T>::iterator it; }; ошибки при компиляции подробнее

Показать сообщение отдельно
Montanaa
5 / 5 / 1
Регистрация: 21.03.2011
Сообщений: 79
01.11.2011, 17:51     Последовательность
Помогите разобраться, исправить код. не понимаю в чем дело
272. Максимальная красивая подпоследовательность

ограничение времени на тест: 0.5 сек.
ограничение памяти на тест: 65536 KB.
ввод: standard
вывод: standard


Дана последовательность N целых чисел A[1], A[2], ..., A[N]. Подпоследовательность называется красивой, если любые два ее элемента имеют разность индексов в первоначальной последовательности не менее D.
Формально, пусть A[i1], A[i2], ..., A[ik] - подпоследовательность длины k, тогда она будет красивой, если i2 - i1 >= D и i3 - i2 >= D и ... и ik - ik-1 >= D.
Найдите максимальную сумму элементов среди всех красивых подпоследовательностей заданной последовательности.

Входные данные
В первой строке входного файла заданы натуральные числа N и D (2 <= N <= 1000; 1 <= D <= N - 1). В следующей строке находятся N целых чисел A[i] (1 <= A[i] <= 10000).

Выходные данные
В результирующем файле должно находится искомое целое число.

Пример

Ввод
5 3
4 2 5 1 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
#include <iostream>
 
typedef long long ll;
 
int main()
{
    int n; ll d;
    std::cin >> n >> d;
    int a[n + 1];
    int z[n + 1];
    
    for (int i = 1; i <= n; ++i)
        std::cin >> a[i];
    
    z[0] = 0;
    for (int i = 1; i <= n; ++i)
    {
        z[i] = std::max(z[i-  ], a[i]);
        std::cout << "i is " << i << " z[i] is " << z[i] << std::endl;
        for (int j = 1; j < i - d; ++j)
        {
            std::cout << "j is " << j << " z[i] is " << z[i] << " z[" << i - d - 1 << "] is " << z[i - d - 1] << " a[j] is " << a[j] << std::endl;
            z[i] = std::max(z[i], z[i - d - 1] + a[i]);
            std::cout << "i-d-i is " << i - d - 1 << " and z[i] now is " << z[i] << std::endl;
        }
    }
    
    ll max = z[0];
    
    for (int i = 1; i <=n; ++i)
        if (max < z[i])
            max = z[i];
    
    std::cout << max << std::endl;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru