jocs

Time limit: 0.75s Memory limit: 32MB Input: jocs.in Output: jocs.out

Gauss şi Seidel, plictisiţi de activităţile lor cotidiene, s-au apucat de un nou joc. Fiind dat un şir de NN caractere şi un număr KK, trebuie găsită o subsecvenţă [i,j][i, j] a acestuia (adică o submulţime de elemente aflate pe poziţii consecutive) de lungime minimă KK, astfel încât numărul de apariţii a subsecvenţei [i,j][i, j] în şirul dat plus ji+1j - i + 1 să fie maxim.

Cerință

Fiind dat un şir de NN caractere şi un număr natural KK, găsiţi pentru acest şir o subsecvenţă cuprinsă între poziţiile [i,j][i, j] care maximizează numărul de apariţii a acestei subsecvenţe în şir plus lungimea acesteia, adică ji+1j - i + 1.

Date de intrare

Fişierul de intrare jocs.in conţine pe prima linie un număr natural TT reprezentând numărul cazurilor de test. Un test este descris prin două linii. Prima linie conţine numerele NN şi KK cu semnificaţia de mai sus. Pe a doua linie se află NN caractere, reprezentând şirul dat.

Date de ieșire

Fisierul de ieşire jocs.out va conţine 2T2 \cdot T linii, reprezentând răspunsurile pentru cele TT teste. Un răspuns se scrie pe două linii: pe prima linie se va scrie numărul de apariţii al subsecvenţei găsite plus lungimea sa, iar pe a doua linie numerele ii şi jj reprezentând capetele subsecvenţei.

Restricții și precizări

  • 1N100 0001 \leq N \leq 100 \ 000
  • 1KN1 \leq K \leq N
  • 1T51 \leq T \leq 5
  • pentru ca un răspuns sa fie considerat corect, subsecvenţa afişată trebuie sa apară în şirul iniţial de cel puţin 22 ori
  • se garantează că pentru fiecare KK dat există o soluţie
  • în cazul în care există mai multe răspunsuri corecte, puteţi să afişaţi oricare dintre acestea

Exemplul 1

jocs.in

2
18 1
atasarapavamefgefg
18 2
atasarapavamefgefg

jocs.out

7
1 1
5
13 15

Explicație

Pentru primul caz, litera a apare de 66 ori in șir, răspunsul fiind 6+1=76 + 1 = 7
Pentru al doilea caz, șirul efg apare de 22 ori, răspunsul fiind 2+3=52 + 3 = 5

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