Dividir los Estudiantes


Submit solution

Points: 100 (partial)
Time limit: 2.0s
Memory limit: 512M

Authors:
Problem type
Allowed languages
C, C#, C++, Java, JS, Pascal, Python, VB

Un grupo de estudiantes de cibernética ha sido admitido recientemente a la facultad de Matemática, Física y Computación de la UCLV. Ahora el profesor de programación quiere dividirlos en tres subgrupos para sesiones de práctica.

El profesor sabe que muchos programadores discuten que lenguaje de programación es mejor. El profesor no quiere escuchar ninguna discusión en los subgrupos, así que este divide a los estudiantes en tres subgrupos donde ningún par de estudiantes pertenecientes a un mismo subgrupo quieran discutir.

Para realizar esta división, el profesor le preguntó a cada estudiante cual lenguaje de programación le gusta más. Hay a estudiantes que respondieron que les gusta Assambler, b estudiantes dijeron que prefieren Basic, y c estudiantes piensan que C++ es el mejor.

Ahora, sabiendo que los programadores de Assambler y C++ pueden comenzar a discutir en cualquier momento, el profesor quiere dividir los estudiantes en tres subgrupos donde se cumpla que: cada estudiante pertenece a exactamente un subgrupo y ningún subgrupo contiene al menos un fanático de Assambler y al menos un fanático de C++. Dado que enseñar a muchos estudiantes puede ser complicado, el profesor quiere minimizar el tamaño del subgrupo más grande.

Por favor ayuda al profesor a calcular el mínimo tamaño posible del subgrupo más grande!

Entrada

La primera línea de la entrada contiene un entero t (1 \leq t \leq 5) - el número de casos de prueba en la entrada. Luego sigue cada caso.

Cada caso consiste de una línea que contiene tres enteros a, b y c (1 \leq a, b, c \leq 1000)- el número de fanáticos de Assambler, Basic y C++ respectivamente.

Salida

Para cada caso de prueba imprime un entero- el tamaño minimo del subgrupo mas grande si los estudiantes estan divididos de forma tal que: cada estudiante pertenezca exactamente a un subgrupo y no haya un subgrupo que contenga al menos un fanático de Assambler y al menos un fanático de C++.

Ejemplo #1 de Entrada

5
3 5 7
4 8 4
13 10 13
1000 1000 1000
13 22 7

Ejemplo #1 de Salida

5
6
13
1000
14

Ejemplo #2 de Entrada

5
1 3 4
1000 1000 1
4 1 2
325 226 999
939 861 505

Ejemplo #2 de Salida

3
667
3
517
769
Notas

Explicacion de las respuestas para el ejemplo 1:

  1. El primer subgrupo contiene 3 fanáticos de Assambler y 2 fanáticos de Basic, el segundo subgrupo 5 fanáticos de C++, el tercer subgrupo 2 fanáticos de C++ y 3 fanáticos de Basic.
  2. El primer subgrupo contiene 4 fanáticos de Assambler, el segundo subgrupo 6 fanáticos de Basic, el tercer subgrupo 2 fanáticos de Basic y 4 fanáticos de C++.
  3. El primer subgrupo contiene todos los fanáticos de Assambler, el segundo subgrupo todos los fanáticos de Basic, el tercer subgrupo todos los fanáticos de C++.
  4. El primer subgrupo contiene todos los fanáticos de Assambler, el segundo subgrupo todos los fanáticos de Basic, el tercer subgrupo todos los fanáticos de C++.
  5. El primer subgrupo contiene 12 fanáticos de Assambler y 2 fanáticos de Basic, el segundo subgrupo 1 fanático de Assambler y 13 fanáticos de Basic, el tercer subgrupo 7 fanáticos de C++ y 7 fanáticos de Basic.

Comments

There are no comments at the moment.