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 . Prin convenție, este considerat liber de pătrate.
Așadar, șirul numerelor libere de pătrate este:
Se consideră un șir de numere naturale , , unde 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
- Să se determine câte numere libere de pătrate conține șirul dat.
- 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 , care poate fi doar sau , reprezentând cerința, pe a doua linie numărul natural iar pe a treia linie numere naturale, separate prin câte un spațiu, cu semnificația de mai sus.
Date de ieșire
Dacă este egal cu , în fișierul de ieșire oneout.out
se va scrie numărul de numere libere de pătrate din șir.
Dacă este egal cu :
- Pe prima linie a fișierului de ieșire
oneout.out
se vor scrie două numere și despărțite printr-un spațiu, unde reprezintă lungimea maximă a unei bisecvențe cu proprietățile cerute, iar reprezintă numărul de bisecvențe de lungime maximă existente în șir. - Pe următoarele 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
- ,
- Lungimea unei bisecvențe reprezintă numărul de numere din aceasta.
- Pentru teste în valoare de 37 de puncte , din care pentru teste în valoare de 24 de puncte .
- Pentru teste în valoare de 63 de puncte , din care pentru teste în valoare de 23 de puncte .
Exemplu 1
oneout.in
1
6
10 2 12 7 8 15
oneout.out
4
, , . Se rezolvă prima cerință.
Sunt numere libere de pătrate în șirul și anume , , și .
Exemplu 2
oneout.in
2
6
10 2 12 7 8 15
oneout.out
3 1
1 4
, , . Se rezolvă a doua cerință.
Dacă se elimină se obține bisecvența de lungime . Dacă se elimină se obține bisecvența de lungime . Deci există o singură bisecvență de lungime maximă , care începe în poziția și se termină în poziția .
Exemplu 3
oneout.in
2
7
5 28 17 24 15 20 18
oneout.out
2 2
1 3
3 5
, , . Se rezolvă a doua cerință.
Dacă se elimină se obține bisecvența de lungime . Dacă se elimină se obține bisecvența tot de lungime . Deci există două bisecvențe de lungime maximă . Prima începe în poziția și se termină în poziția . A doua începe în poziția și se termină în poziția .
Exemplu 4
oneout.in
2
9
3 10 5 8 9 11 4 15 21
oneout.out
3 1
6 9
, , . Se rezolvă a doua cerință.
nu poate fi eliminat deoarece este situat la sfârșitul unei bisecvențe iar 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 și se va obține bisecvența de lungime care începe în poziția și se termină în poziția .