![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Kolyancz |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задана последовательность чисел N. N<=1000. Найдите длину длиннейшей возрастающей последовательности, входящей в эту последовательность.
Например: Дана последовательность: 4 6 1 6 9 9 6 1 2 Ответ: 3 (потому что самый длинный участок - это 1 6 9) Порядок ввода данных: сначала задается кол-во чисел в последовательности, потом числа этой последовательности. Например: Ввод: 9 4 6 1 6 9 9 6 1 2 Вывод: 3 |
![]() ![]() |
Kolyancz |
![]() ![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Получилось вот что:
Код type TType = integer; var n:integer; a: array[1 .. 1000] of integer; function find_ascend(var arr: array of ttype; const n: integer; var max: integer): integer; var curr, start: integer; function check_max(i: integer): integer; begin if max < curr then begin max := curr; check_max := i - curr + byte(i = pred(n)) end else check_max := start end; var i: integer; begin max := 0; curr := 1; start := 1; for i := 1 to pred(n) do begin if arr[i - 1] < arr[i] then inc(curr) else begin start := check_max(i); curr := 1 end; end; start := check_max(i); find_ascend := start end; var i,_start, _max: integer; begin readln(n); for i:=1 to n do readln (a[i]); writeln(a:n); _start := find_ascend(a, n, _max); writeln(_max) ; end. Счетает все отлично, вот только есть одна загвоздка. Нужно сделать ввод чисел через пробел, а не enterом. Вопрос, как? |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 22:02 |