dsecv

Time limit: 1s Memory limit: 16MB Input: dsecv.in Output: dsecv.outPoints by default: 10p

Într-un șir de numere naturale, numim secvență dsecv, o succesiune de valori situate pe poziții consecutive aia_i, ai+1a_{i+1}, ai+2a_{i+2}, ai+3a_{i+3}, \dots, aja_j cu iji \leq j dacă oricare două numerele alăturate din secvență (ai,ai+1)(a_i, a_{i+1}) au proprietatea că numărul de divizori ai lui aia_i \leq numărul de divizori ai lui ai+1a_{i+1}. Numărul de elemente din secvență reprezintă lungimea secvenței.
De exemplu, în șirul 1313, 2020, 2424, 33, 1212, 100100, 22, 1717, 1818 există 33 secvențe dsecv de lungime 33: (13,20,24)(13, 20, 24); (3,12,100)(3, 12, 100) și (2,17,18)(2, 17, 18).

Cerință

Fiind dat numărul natural CC reprezentând numărul cerinței, un număr natural nn și apoi un șir de nn numere naturale nenule cu maxim 99 cifre fiecare, scrieți un program care rezolvă următoarele cerințe:

  1. Dacă C=1C=1, dintre toate valorile din șir care au număr maxim de divizori, se vor determina valoarea minimă și valoarea maximă.
  2. Dacă C=2C=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 CC reprezentând cerința (11 sau 22) și numărul natural nn, iar pe a doua linie un șir de nn numere naturale, valorile de pe aceeași linie fiind separate prin câte un spațiu.

Date de ieșire

Dacă cerința C=1C=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=2C=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

  • 1n1041 \leq n \leq 10^4;
  • 1C21 \leq C \leq 2;
  • 1ai1091 \leq a_i \leq 10^9;
  • Pentru 4040 de puncte cerința va fi C=1C=1;
  • Pentru 5050 de puncte cerința va fi C=2C=2;
  • 1010 puncte se acordă din oficiu.

Exemplul 1

dsecv.in

1 10 
13 20 24 3 12 100 120 2 432 18

dsecv.out

432 432

Explicație

Numărul 432432 are cei mai multi 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 11 secvență dsecv de lungime 44. dsecv=(3,12,100,120)\text{dsecv} = (3, 12, 100, 120).

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