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

Определение длины подпоследовательности - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ применение указателей, структур и объединений http://www.cyberforum.ru/cpp-beginners/thread57315.html
Здравствуйте, люди добрые!! (^_^)/ Очень нуждаюсь в вашей помощи... Помогите разобраться студентке!! (Y_Y)(^o^)/ Задание примерно следующее: Составить программу на языке Си, в которой...
C++ проблема с графикой в code blocks друг скинул готовую прогу-меню,но она у меня не компилится,выдает мне библиотеку <graphics.h> и ругается там на строчку #include <sstream> // Provides std::ostringstream Уже и... http://www.cyberforum.ru/cpp-beginners/thread57312.html
C++ Объясните код программы
Пожалуйста объясните программу, если не трудно после каждой строчки напишите кометариий #include <iostream.h> int main () { int num; cout << "\nVviditi chislo :"; cin >> num; int...
Строка произвольной длины... C++
Доброго дня, товарищи! Что-то я подзабыл как сделать на С++ так, чтобы можно было самому вводить строку произвольной длины в ходе программы. Такое вот char a или char a не подходит.Нужно,...
C++ Классы для арифметических операций с большими числами (целые числа более 10 знаков) http://www.cyberforum.ru/cpp-beginners/thread57288.html
C++ ,Классы для арифметических операций с большими числами(целые числа более 10 знаков), и бывают ли стандартные классы поддерживающие операции с числами такой разрядности)) =-O P.S. Я в С++...
C++ Поясните новичку Компилятор ругается на программу: #include <iostream> #include <string> #include <math> using namespace std; int main() { подробнее

Показать сообщение отдельно
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
19.10.2009, 10:16
В демонстрационной версии - с выводом только на экран: ((:

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
#include <algorithm>
#include <functional>
#include <iostream>
#include <locale>
#include <iostream>
#include <iterator>
 
/*
    составить программу для определения длины самой длинной
        неубывающей подпоследовательности в последовательности чисел
*/
 
template <typename T>
void find(const T* arr, const size_t N)
{
    typedef typename std::allocator<T>::const_pointer iterator;
 
    iterator curr = &arr[0], next, found = arr + N;
    size_t max_seq = 0;
 
    for(; (next = std::adjacent_find(curr, arr+N, std::greater<T>())) != arr+N; std::advance(curr = next, 1))
    {
        const size_t curr_length = std::distance(curr, next) + 1;
        if (curr_length > max_seq)
        { max_seq = curr_length; found = curr; }
        std::advance(curr = next, 1);
    }
 
    const size_t last_length = std::distance(curr, next);
    if (last_length > max_seq)
    { max_seq = last_length; found = curr; }
 
    std::cout << "самая длинная неубывающая последовательность:" << std::endl;
    std::copy(found, found + max_seq, std::ostream_iterator<T>(std::cout, " "));
}
 
int main()
{
    setlocale(LC_ALL, "");
    int arr[] = {1,2,3,0,1,-1,7,6,5,4,1,1,1,1};
    const size_t N = sizeof(arr) / sizeof(arr[0]);
    find(arr, N);
 
    return (0);
}
проверка: http://codepad.org/P1Xaxysl
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.