Scrabble

Time limit: 0.5s Memory limit: 64MB Input: Output:

Cerință

Matei joacă o variantă specială de Scrabble. El are în inventar un șir de NN litere mici ale alfabetului englez, așezate într-o ordine fixă.

La o mutare, Matei poate alege o subsecvență din inventar, adică literele aflate între două poziții alese ii și jj, cu 1ijN1 \le i \le j \le N. Scorul obținut depinde de cât de dezechilibrate sunt frecvențele literelor din subsecvența aleasă.

Se consideră un șir SS de lungime NN, format doar din litere mici ale alfabetului englez.

Pentru o subsecvență nevidă TT, definim fr[x]fr[x] ca fiind numărul de apariții ale literei xx în TT.

Notăm cu D(T)D(T) mulțimea literelor distincte care apar în TT.

Dacă TT conține o singură literă distinctă, atunci definim:

dif(T)=0dif(T) = 0

Altfel, definim:

dif(T)=maxxD(T)fr[x]minyD(T)fr[y]dif(T) = \max_{x \in D(T)} fr[x] - \min_{y \in D(T)} fr[y]

Cu alte cuvinte, dif(T)dif(T) este diferența dintre frecvența celei mai dese litere din TT și frecvența celei mai rare litere care apare în TT. Literele care nu apar în TT nu sunt luate în considerare.

De exemplu, pentru T=abbcccT = abbccc, avem:

fr[a]=1, fr[b]=2, fr[c]=3fr[a] = 1,\ fr[b] = 2,\ fr[c] = 3

Astfel,

dif(T)=31=2dif(T) = 3 - 1 = 2

Pentru T=aaaaT = aaaa, există o singură literă distinctă, deci:

dif(T)=0dif(T) = 0

Pentru fiecare pereche de poziții ii și jj, cu 1ijN1 \le i \le j \le N, notăm cu S[ij]S[i \dots j] subsecvența lui SS care începe la poziția ii și se termină la poziția jj.

Cerința este să determinați scorul maxim pe care îl poate obține Matei alegând o subsecvență a șirului, adică valoarea:

max1ijNdif(S[ij])\max_{1 \le i \le j \le N} dif(S[i \dots j])

Date de intrare

Prima linie conține numărul întreg NN, lungimea șirului.

A doua linie conține șirul SS, format din NN litere mici ale alfabetului englez.

Date de ieșire

Afișați un singur număr întreg, reprezentând scorul maxim care poate fi obținut alegând o subsecvență nevidă a șirului SS.

Restricții și precizări

  • 1N1051 \le N \le 10^5
  • Șirul SS conține doar litere mici ale alfabetului englez, adică litere de la aa la zz
  • Alfabetul are 2626 de litere

Subtaskuri și punctaje

Subtask Constrângeri suplimentare Punctaj
11 N500N \le 500 2020
22 N5 000N \le 5 \ 000 2525
33 N105N \le 10^5; șirul conține exact două litere distincte 2525
44 Fără constrângeri suplimentare 3030

Exemplu

stdin

7
abbbbca

stdout

3

Explicație

Matei poate alege subsecvența abbbbabbbb.

În aceasta avem:

fr[a]=1, fr[b]=4fr[a] = 1,\ fr[b] = 4

Prin urmare, dif(abbbb)=41=3dif(abbbb) = 4 - 1 = 3. Acesta este scorul maxim care poate fi obținut.

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