oneout

Time limit: 0.3s Memory limit: 64MB Input: oneout.in Output: oneout.out

Definim un număr liber de pătrate ca fiind un număr natural care nu are ca divizor niciun pătrat perfect mai mare ca 11. Prin convenție, 11 este considerat liber de pătrate.

Așadar, șirul numerelor libere de pătrate este: 1,2,3,5,6,7,10,11,13,14,15,17,1, 2, 3, 5, 6, 7, 10, 11, 13, 14, 15, 17, \dots

Se consideră un șir de NN numere naturale XiX_i, 1iN1 \leq i \leq N, unde NN este un număr natural.

Definim o bisecvență ca un subșir nevid obținut prin eliminarea dintr-o secvență a unui număr care nu este la începutul sau la sfârșitul secvenței.

Cerințe

  1. Să se determine câte numere libere de pătrate conține șirul dat.
  2. Să se determine cea mai lungă bisecvență din șir formată din numere libere de pătrate, obținută prin eliminarea unui număr care nu este liber de pătrate.

Date de intrare

Fișierul de intrare oneout.in conține pe prima linie un număr natural CC, care poate fi doar 11 sau 22, reprezentând cerința, pe a doua linie numărul natural NN iar pe a treia linie NN numere naturale, separate prin câte un spațiu, cu semnificația de mai sus.

Date de ieșire

Dacă CC este egal cu 11, în fișierul de ieșire oneout.out se va scrie numărul de numere libere de pătrate din șir.

Dacă CC este egal cu 22:

  • Pe prima linie a fișierului de ieșire oneout.out se vor scrie două numere LL și KK despărțite printr-un spațiu, unde LL reprezintă lungimea maximă a unei bisecvențe cu proprietățile cerute, iar KK reprezintă numărul de bisecvențe de lungime maximă existente în șir.
  • Pe următoarele KK linii se vor scrie indicii de început și de sfârșit ai fiecărei bisecvențe de lungime maximă găsite, în ordinea crescătoare a indicelui de start, despărțite printr-un spațiu.
  • Dacă șirul nu conține nicio bisecvență cu proprietățile cerute, în fișierul de ieșire se va scrie -1.

Restricții și precizări

  • 3N1063 \leq N \leq 10^6
  • 2Xi1062 \leq X_i \leq 10^6, 1iN1 \leq i \leq N
  • Lungimea unei bisecvențe reprezintă numărul de numere din aceasta.
  • Pentru teste în valoare de 37 de puncte C=1C = 1, din care pentru teste în valoare de 24 de puncte 3N253 \leq N \leq 25.
  • Pentru teste în valoare de 63 de puncte C=2C = 2, din care pentru teste în valoare de 23 de puncte 3N1013 \leq N \leq 101.

Exemplu 1

oneout.in

1
6
10 2 12 7 8 15

oneout.out

4

C=1C = 1, N=6N = 6, X16={10,2,12,7,8,15}X_{1–6} = \{10, 2, 12, 7, 8, 15\}. Se rezolvă prima cerință.
Sunt 44 numere libere de pătrate în șirul X16X_{1–6} și anume 1010, 22, 77 și 1515.

Exemplu 2

oneout.in

2
6
10 2 12 7 8 15

oneout.out

3 1
1 4

C=2C = 2, N=6N = 6, X16={10,2,12,7,8,15}X_{1–6} = \{10, 2, 12, 7, 8, 15\}. Se rezolvă a doua cerință.
Dacă se elimină 1212 se obține bisecvența {10,2,7}\{10, 2, 7\} de lungime 33. Dacă se elimină 88 se obține bisecvența {7,15}\{7, 15\} de lungime 22. Deci există o singură bisecvență de lungime maximă =3= 3, care începe în poziția 11 și se termină în poziția 44.

Exemplu 3

oneout.in

2
7
5 28 17 24 15 20 18

oneout.out

2 2
1 3
3 5

C=2C = 2, N=7N = 7, X17={5,28,17,24,15,20,18}X_{1–7} = \{5, 28, 17, 24, 15, 20, 18\}. Se rezolvă a doua cerință.
Dacă se elimină 2828 se obține bisecvența {5,17}\{5, 17\} de lungime 22. Dacă se elimină 2424 se obține bisecvența {17,15}\{17, 15\} tot de lungime 22. Deci există două bisecvențe de lungime maximă =2= 2. Prima începe în poziția 11 și se termină în poziția 33. A doua începe în poziția 33 și se termină în poziția 55.

Exemplu 4

oneout.in

2
9
3 10 5 8 9 11 4 15 21

oneout.out

3 1
6 9

C=2C = 2, N=9N = 9, X19={3,10,5,8,9,11,4,15,21}X_{1–9} = \{3, 10, 5, 8, 9, 11, 4, 15, 21\}. Se rezolvă a doua cerință.
88 nu poate fi eliminat deoarece este situat la sfârșitul unei bisecvențe iar 99 nu poate fi eliminat pentru că ar fi începutul unei bisecvențe.
Singurul număr care nu este liber de pătrate ce poate fi eliminat este 44 și se va obține bisecvența {11,15,21}\{11, 15, 21\} de lungime 33 care începe în poziția 66 și se termină în poziția 99.

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