canonic

Time limit: 1s Memory limit: 32MB Input: canonic.in Output: canonic.out

Fermierul Amooot merge la magazinul de furaje pentru a achiziționa amestecuri de iarbă pentru pășunatul vacilor sale. Vânzătorul Popică, viclean de fel, îi prezintă un șir VV de NN oferte; însă, pentru ca Amooot să poată achiziționa hrana, acesta va trebui neapărat să selecteze o subsecvență canonică de oferte!

Spunem că o subsecvență ai,ai+1,,aja_i, a_{i+1}, \ldots, a_j, 1ijN1 \leq i \leq j \leq N este canonică dacă ak % ai=0a_k \text{ \% } a_i = 0, pentru orice kk, ikji \leq k \leq j.
De exemplu, în șirul (3,4,2,10,4,12,3)(3, 4, 2, 10, 4, 12, 3), subsecvențe canonice sunt (2,10)(2, 10) sau (2,10,4,12)(2, 10, 4, 12), dar nu și subsecvența (10,4,12)(10, 4, 12).

Cerință

Văzând condițiile impuse de Popică, Amooot își pune două întrebări:

  1. Care este cea mai lungă subsecvență canonică din VV?
  2. Câte subsecvențe canonice există în VV?

Date de intrare

Pe prima linie a fișierului de intrare canonic.in se găsește numărul CC, numărul cerinței de rezolvat.

Pe a doua linie a fișierului de intrare se găsește numărul NN, reprezentând numărul elementelor șirului de oferte.

Pe a treia linie a fișierului de intrare se vor găsi NN numere naturale, care reprezintă șirul de oferte VV. Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu.

Date de ieșire

Pe prima linie a fișierului de ieșire canonic.out se va afișa răspunsul la cerința din test.

Restricții și precizări

  • C{1,2}C \in \{1, 2\}
  • 1N500 0001 \leq N \leq 500 \ 000
  • 1Vi10121 \leq V_i \leq 10^{12}, pentru orice 1iN1 \leq i \leq N
  • Atenție la limita de memorie!
# Punctaj Restricții
1 7 C=1,N500C = 1, N \leq 500
2 8 C=1,N2 000C = 1, N \leq 2 \ 000
3 10 C=1,N100 000C = 1, N \leq 100 \ 000, Vi1 000V_i \leq 1 \ 000, pentru orice 1iN1 \leq i \leq N
4 12 C=1C = 1, Fără restricții suplimentare.
5 2 C=2C = 2, Vi=1V_i = 1, pentru orice 1iN1 \leq i \leq N
6 6 C=2,N500C = 2, N \leq 500
7 13 C=2,N2 000C = 2, N \leq 2 \ 000
8 17 C=2,N100 000C = 2, N \leq 100 \ 000, Vi1 000V_i \leq 1 \ 000, pentru orice 1iN1 \leq i \leq N
9 25 C=2C = 2, Fără restricții suplimentare.

Exemplul 1

canonic.in

1
7
3 4 2 10 4 12 3

canonic.out

4

Explicație

Subsecvența canonică de lungime maximă din șir este (2,10,4,12)(2, 10, 4, 12). Așadar, lungimea maximă este 44.

Exemplul 2

canonic.in

2
7
3 4 2 10 4 12 3

canonic.out

11

Explicație

Subsecvențele canonice din șir sunt:

  1. (3)(3)
  2. (4)(4)
  3. (2)(2)
  4. (2,10)(2, 10)
  5. (2,10,4)(2, 10, 4)
  6. (2,10,4,12)(2, 10, 4, 12)
  7. (10)(10)
  8. (4)(4)
  9. (4,12)(4, 12)
  10. (12)(12)
  11. (3)(3)

Log in or sign up to be able to send submissions!