Untitled
unknown
c_cpp
4 years ago
1.0 kB
7
Indexable
#include <iostream>
int main()
{
int const N = 22;
int a[N] = { 2,3,4,8,5,4,3,2,1,2,3,3,3,3,4,5,6,7,8,9,1,2 };
int i = 0;
int j = 0;
int dlugosc_podtablicy = 1; //jak ktoś będzie wredny, to ci da ciąg pusty - na kolokwium może być istotne
int indeks = 0;
int indeks_max = 0;
int dlugosc_podtablicy_max = 1;
for (i = 0; i < (N-1); i++) //jeśli chodzi o samo C/C++ to "i++" jest dużo droższą operacją niż "++i", "++i" jest lepsze w takiej sytuacji
{
if (a[i] <= a[i + 1])
{
indeks = i;
while (i + j < (N - 1) && a[i + j] <= a[i + j + 1])
{
dlugosc_podtablicy++;
j++;
}
if (dlugosc_podtablicy_max < dlugosc_podtablicy)
{
dlugosc_podtablicy_max = dlugosc_podtablicy;
indeks_max = indeks;
}
//najlepszym rozwiązaniem tutaj byłoby zrobić i+=j+1
// j=0, żeby nie liczyć niepotrzebnie już policzonych podciągów
}
}
std::cout << indeks_max << " " << dlugosc_podtablicy_max << std::endl;
return 0;
}Editor is loading...