Здравствуйте, Nick_2003, Вы писали:
N_>Последовательность назвается пилообразной, если a1<a2>a3<a4>...>ak или a1>a2<a3>a4<...<ak.
N_>В массиве А(m) найти самую длиную пилооброзную последовательность.
А в чем тут проблема?
Я думаю так ( это не тестировалось ) :
int start = 0, end = 0;
for(int n = 1; n < count - 1; ++n)
{
int n1 = n;
while(((a[n - 1] > a[n]) == (a[n] < a[n + 1])
|| (a[n - 1] < a[n]) == (a[n] > a[n + 1]))
&& n < count - 1)
++n;
if(n - n1 > start - end)
{
start = n1 - 1;
end = n;
}
while(((a[n - 1] >= a[n]) == (a[n] >= a[n + 1])
&& n < count - 1)
++n;
}
// здесь start и end индексы первого и последнего элемента максимальной пилообразной подпоследовательности
... << RSDN@Home 1.1 alpha 1 >>