maxdiv

Time limit: 0.03s Memory limit: 2MB Input: maxdiv.in Output: maxdiv.outPoints by default: 10p

Adrian este pasionat de matematică. El utilizează denumirea maxdiv pentru numărul care are cei mai mulţi divizori, dintre numerele unui şir dat. Adrian ştie că o secvenţă este un subşir de numere care apar pe poziţii consecutive într-un şir. El denumeşte secvenţă maxdiv o secvenţă din şir, formată din cel puţin două numere, ce începe şi se încheie cu un număr maxdiv şi nu conţine alte numere maxdiv în interior. Având la dispoziţie un şir de n numere naturale, doreşte să afişeze cea mai lungă secvenţă maxdiv şi numărul de secvenţe maxdiv din şir. Dacă şirul de numere dat conţine mai multe secvenţe maxdiv de aceeaşi lungime maximă, se va afişa prima secvenţă de acest tip din şir.

Cerinţă

Scrieţi un program care afişează, pentru un şir dat format din nn numere naturale numărul de secvenţe maxdiv şi cea mai lungă secvenţă maxdiv.

Date de intrare

Fişierul de intrare maxdiv.in conţine pe prima linie numărul nn separat printr-un spaţiu de un număr natural tt, care reprezintă cerinţa: 11, dacă se cere numărul de secvenţe maxdiv, respectiv 22 dacă se cere cea mai lungă secvenţă maxdiv. Linia a doua din fişier conţine cele nn numere naturale ale şirului dat.

Date de ieşire

Fişierul de ieșire maxdiv.out va conţine pe prima linie un număr natural ce reprezintă numărul de secvenţe maxdiv, pentru şirul de numere dat, dacă cerinţa este 11. Dacă cerinţa este 22, fişierul de ieşire va conţine un şir de numere naturale, separate între ele prin câte un spaţiu, ce reprezintă cea mai lungă secvenţă maxdiv din şirul dat.

Restricţii şi precizări

  • 2n1 0002 \leq n \leq 1 \ 000
  • 2xi1 000 0002 \leq x_i \leq 1 \ 000 \ 000, unde xix_i reprezintă un număr din şirul dat
  • Şirul de numere conţine cel puţin o secvenţă care începe şi se încheie cu un număr maxdiv
  • Pentru cerința 11 se acordă 40%40\% din punctaj, iar pentru cerința 22 se acordă 60%60\% din punctaj.

Exemplul 1

maxdiv.in

7 1
22 60 64 125 315 24 150

maxdiv.out

2

Explicație

Cerinţa 11
Şirul de numere dat conţine 33 numere maxdiv: 6060, 315315 şi 150150 (au fiecare 1212 divizori) și 22 secvenţe maxdiv : 6060, 6464, 125125, 315315 şi 315315, 2424, 150150.

Exemplul 2

maxdiv.in

7 2
22 60 64 125 315 24 150

maxdiv.out

60 64 125 315

Explicație

Cerinţa 22
Şirul de numere dat conţine 22 secvenţe maxdiv: 6060, 6464, 125125, 315315 şi 315315, 2424, 150150. Cea mai lungă secvenţă este 6060, 6464, 125125, 315315.

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