Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 09:59   #1
alexb81
 
Регистрация: 30.05.2011
Сообщений: 3
По умолчанию программа, которая считывает цепочку чисел и печатает наиболее длинную, монотонно возрастающую их подпосл

Добрый день!Помогите решить задачку.

Составить программу:

программа, которая считывает цепочку чисел и печатает наиболее длинную, монотонно возрастающую их подпоследовательность

Спасибо!
alexb81 вне форума Ответить с цитированием
Старый 30.05.2011, 13:47   #2
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

а вам на чем ? vb, basic, pascal, c, assembler, python или на всем по чуть чуть ?
kakawkin вне форума Ответить с цитированием
Старый 30.05.2011, 19:49   #3
alexb81
 
Регистрация: 30.05.2011
Сообщений: 3
По умолчанию

На паскале
alexb81 вне форума Ответить с цитированием
Старый 31.05.2011, 14:03   #4
alexb81
 
Регистрация: 30.05.2011
Сообщений: 3
По умолчанию

Вот нашел,кто-нибудь подскажите онo или нет?

Код:
uses Crt;
const MAX_N = 5000;

var a: array [l..max_N]  of word;
len    : array [l..max_N]  of word;
sum    : array  [l..max_N]  of longint;

{ суммы наилучших подпоследовательностей }

next : array [l..max_N] of word;

{ "таблица выборов": следующие элементы в

наилучших подпоследовательностях }

fv :  text;

N, m,  k : word;

curr_len : word; curr_sum : longint; curr : word;

BEGIN

{ ввод данных и инициализация массивов }

assign(fv, ‘ secjuence .dat1) ; reset(fv);

readln(fv, N);

for m := 1 to N do read(fv, a [m]) ;

close(fv);

for m := 1 to N do begin

next[m]   := 0;  len[m]   := 0;  sum[m]   := 0;

end;

{ Решение подзадач поиска m-наилучших подпоследовательностей }

for m := N downto 1 do begin

curr_len := 0; curr_sum := 0;

{Ищется начало k-наилучшего решения для к от m+1 до N,

т.е. одной из подзадач меньшего размера,

и запоминается в next[m]. В len[m] и sum[m]

запоминаются длина и сумма т-наилучшего решения }

for k := m+1 to N do

if a[k]  >= a[t]   then

.if (len[k]  > curr_len) or

(len[k]  = curr_len) and (sum[k]  > curr_sum)

then begin

curr_len := len[k]; curr_sum := sum[k];

next[m]   := k;

end;

len[m]   := curr_len+l; sumtm]   := curr_sum+a[m];

end;

{ Поиск начала к наилучшей подпоследовательности }

curr_len  := 0;  curr_sum := 0;

for k := 1 to N do

if  (len[k]  > curr_len)  or

(len[k]  = curr_len)  and (sum[k]  > curr_sum)

then begin

curr_len := len[k]; curr_sum := sum[k];

curr := k;

end;

assign(fv,   1 sequence.sol1); rewrite(fv);

k := curr;

{ Вывод наилучшей подпоследовательности }

while k о 0 do begin

write(fv, a [k],   ‘   ‘); k := next[k];

end;

writeln(fv); writeln(fv,  sum[curr]); close(fv);

END.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось alexb81; 31.05.2011 в 16:15.
alexb81 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых shadowfiend C++ Builder 2 09.05.2011 21:48
17 Составить программу, которая печатает таблицу умножения и сложения натуральных чисел в шестнадцатеричн OTLi4HO Общие вопросы C/C++ 1 16.01.2009 13:59
программа, которая запрашивает дату рождения и печатает название соответствующего знака Зодиака Алёночка2008 Помощь студентам 4 14.11.2008 10:49
В одномерном масиве найти длинную цепочку стоящих попарно различных элементов Махряк Помощь студентам 0 05.12.2007 20:00
В одномерном масиве найти длинную цепочку стоящих попарно различных элементов Махряк Помощь студентам 0 29.11.2007 23:09