anagrame

Time limit: 0.2s Memory limit: 64MB Input: anagrame.in Output: anagrame.out

Se dau două şiruri S1S1 si S2S2 formate doar cu litere mici. Numim subşir de lungime KK al unui şir aa un şir a=ai1+ai2++aiKa^\prime = a_{i_1} + a_{i_2} + \dots + a_{i_K}, astfel încât să avem i1<i2<<iKi_1 \lt i_2 \lt \dots \lt i_K.

Cerință

Să se determine lungimea maximă a unui subşir din S1S1, format prin concatenarea unor anagrame ale şirului S2S2. Dintre toate subşirurile cu lungime maximă se va determina cel care este cel mai mic lexicografic.

Un şir aa de lungime nn se consideră mai mic lexicografic decât un şir bb de lungime nn dacă există un indice ii astfel încât a1=b1a_1=b_1, a2=b2a_2=b_2, \dots, ai1=bi1a_{i-1}=b_{i-1} şi ai<bia_i \lt b_i. Dacă lungimile celor două șiruri diferă, șirul cu lungimea mai mică se consideră minim lexicografic.

Un şir aa este anagrama unui şir bb dacă, sortându-le crescător pe fiecare, se obţin două şiruri identice.

Date de intrare

În fişierul anagrame.in, pe prima linie se află un număr natural PP. Pe linia a doua se află şirul S1S1, iar pe a treia linie se află şirul S2S2.

Date de ieșire

În fişierul anagrame.out, dacă P=1P=1, atunci pe prima linie se va scrie un număr natural reprezentând lungimea maximă a unui şir cu proprietatea cerută, iar dacă P=2P=2, atunci pe prima linie se va scrie subşirul de lungime maximă cu proprietatea cerută şi minim lexicografic.

Restricții și precizări

  • 1S2S11051 \leq |S2| \leq |S1| \leq 10^5, unde a|a| este lungimea șirului aa.
  • Se garantează că cel puţin o anagramă a lui S2S2 apare în S1S1.

Exemplul 1

anagrame.in

1
abbaaabababbaabaabba
aba

anagrame.out

15

Explicație

Deoarece litera a apare de 1111 ori, S2S2 poate să apară de cel mult 55 ori.

Se observă subşirul format cu litere subliniate abbaaabababbaabaabba\text{\underline{ab}b\underline{aaababa}b\underline{baabaa}bba} deci abaaabababaabaa\text{abaaabababaabaa} este un subşir de lungime maximă, egală cu 1515, cu proprietatea cerută.

Exemplul 2

anagrame.in

2
abbaaabababbaabaabba
aba

anagrame.out

abaaabaabaabaab

Explicație

Se observă că subşirul verifică proprietatea cerută.

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