Untitled
unknown
c_cpp
3 years ago
1.0 kB
4
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...