Ir al contenido (saltar navegación)

Login, logout

Tiempo máximo: 1,000-2,000 sMemoria máxima: 4096 KiB
Administrador mirando un rack de servidores

Como administrador de una plataforma de aprendizaje online, una de tus responsabilidades es controlar la carga de los servidores, para conocer los picos de uso y poder detectar tendencias crecientes que te permitan adquirir nuevo hardware con antelación suficiente.

Eres buen programador pero, por desgracia, tus habilidades de administración de sistemas no son muy destacables. La única monitorización que tienes desplegada es el registro de los instantes en los que los usuarios hacen login y logout para entrar y salir del sistema. Cada vez que un usuario abre la sesión, escribes en el fichero de bitácora una I (de login). De la misma forma, cuando un usuario se desconecta, escribes una O (de logout).

Lo tienes así desde hace años y nunca has hecho mucho caso al resultado. Pero últimamente el sistema está empezando a ir lento, y has recuperado el fichero para intentar intuir qué está pasando contando los picos de uso.

Entrada

La entrada comienza con un número con la cantidad de casos que vendrán a continuación. Cada caso de prueba es una línea conteniendo únicamente las letras I y O, indicando que un usuario ha hecho login o logout respectivamente.

Cada caso de prueba está cogido de una porción de algún fichero de bitácora extraído de las copias de seguridad. Se garantiza que siempre tienen al menos una letra y no más de 10.000. Eso sí, al ser porciones aleatorias no se puede garantizar que el caso de prueba termine después de que todos los usuarios que han hecho login hayan hecho el correspondiente logout. De hecho, también podría ocurrir al contrario, que haya usuarios que hagan logout sin haber visto su login.

Salida

Por cada caso de prueba, el programa deberá escribir el máximo número de usuarios que podemos demostrar que han estado autentificados en el sistema simultáneamente.

Entrada de ejemplo

3
IIOIOO
IIIIO
O

Salida de ejemplo

2
4
1