Într-un șir de numere naturale, numim secvență dsecv, o succesiune de valori situate pe poziții consecutive a[i]
, a[i+1]
, a[i+2]
, a[i+3]
, … a[j]
cu (i ≤ j
) dacă oricare două numerele alăturate din secvență (a[i]
, a[i+1]
) au proprietatea că numărul de divizori ai lui a[i]
este mai mic sau egal decât numărul de divizori ai lui a[i+1]
. Numărul de elemente din secvență reprezintă lungimea secvenței. De exemplu, în șirul 13, 20, 24, 3, 12, 100, 2, 17, 18
există 3
secvențe dsecv de lungime 3
: 13, 20, 24
; 3, 12, 100
și 2, 17, 18
.
Cerințe
Fiind dat numărul natural C
reprezentând numărul cerinței, un număr natural n
și apoi un șir de n
numere naturale nenule cu maximum 9
cifre fiecare, scrieți un program care rezolvă următoarele cerințe:
1) Dacă C = 1
, dintre toate valorile din șir care au număr maxim de divizori, se vor determina valoarea minimă și valoarea maximă.
2) Dacă C = 2
, se va determina numărul de secvențe dsecv de lungime maximă din șir și lungimea maximă a unei astfel de secvențe.
Date de intrare
Fișierul de intrare dsecv.in
conţine pe prima linie numărul C
reprezentând cerința (1
sau 2
) și numărul natural n
, iar pe a doua linie un șir de n
numere naturale, valorile de pe aceeași linie fiind separate prin câte un spațiu.
Date de ieșire
Dacă cerința C = 1
, atunci pe prima linie a fişierului de ieşire dsecv.out
, se vor determina dintre toate valorile din șir care au număr maxim de divizori, valoarea minimă și valoarea maximă; acestea se vor scrie pe o linie, în ordine crescătoare, separate prin câte un spațiu.
Dacă cerința C = 2
, atunci pe prima linie a fişierului de ieşire dsecv.out
se vor scrie separate prin câte un spațiu, două numere naturale, reprezentând numărul de secvențe dsecv de lungime maximă din șir și lungimea maximă a unei astfel de secvențe.
Restricții și precizări
1 ≤ n ≤ 10.000
1 ≤ C ≤ 2
1 ≤ a[i] ≤ 1.000.000.000
- Pentru 40 de puncte cerinţa va fi
C = 1
. - Pentru 50 de puncte cerinţa va fi
C = 2
. - Se acordă 10 puncte pentru exemplele din enunț.
Exemplul 1:
dsecv.in
1 10 13 20 24 3 12 100 120 2 432 18
dsecv.out
432 432
Explicație
Numărul 432
are cei mai mulți divizori (este și minim și maxim)
Exemplul 2:
dsecv.in
2 10 13 20 24 3 12 100 120 2 432 18
dsecv.out
1 4
Explicație
Șirul conține o secvență dsecv de lungime 4
. dsecv = (3 12 100 120)
.