Витрина прототипов

Просмотр в формате PDF

Submit solution


Очки: 140
Ограничение по времени: 1.0s
Ограничение по памяти: 64M

Автор:
Problem types
Allowed languages
C++, Python

В инженерной лаборатории готовят серию прототипов для большой выставки. Каждый прототип имеет свой уровень качества. Прототипы пронумерованы от 1 до n в порядке размещения на стенде.

Нужно выбрать как можно более длинную цепочку прототипов для демонстрации.

Цепочка считается удачной, если выполняются оба условия:

  • для любых двух соседних выбранных прототипов с номерами i и j номер j идет позже в цепочке и j кратен i;
  • качество прототипов в цепочке строго возрастает.

Иначе говоря, если в цепочке выбраны позиции p1, p2, ..., pk, то для каждого x от 1 до k - 1 должно выполняться:

  • p(x+1) кратно p(x);
  • a[p(x+1)] > a[p(x)].

Требуется определить максимальную возможную длину удачной цепочки.

Входные данные

В первой строке записано одно целое число t — количество наборов данных.

Далее следуют описания наборов данных.

Для каждого набора данных:

  • в первой строке записано одно целое число n — количество прототипов;
  • во второй строке записано n целых чисел a1, a2, ..., an, где ai — качество i-го прототипа.

Выходные данные

Для каждого набора данных выведите одно целое число — максимальную длину удачной цепочки.

Ограничения

  • 1 <= t <= 100
  • 1 <= n <= 100000
  • 1 <= ai <= 10^9
  • сумма всех n по всем наборам данных не превосходит 100000

Пример

Входные данные
3
4
3 1 5 2
6
1 4 2 3 6 5
5
5 4 3 2 1
Выходные данные
2
3
1

Пояснение

В первом наборе можно выбрать, например, прототипы с номерами 2 -> 4. Номер 4 кратен 2, а качество возрастает: 1 < 2.

Во втором наборе подходит цепочка 1 -> 2 -> 6, потому что:

  • 2 кратно 1;
  • 6 кратно 2;
  • качества возрастают: 1 < 4 < 5.

В третьем наборе нельзя выбрать цепочку длины больше 1, потому что качества убывают.


Комментарии

Еще нет ни одного комментария.