import java.util.Scanner;
/**
* 158B - Taxi [http://codeforces.com]
*
* @author BreakDark
* @version 2.0 beta
*/
// ACEPTADO!!! xD
public class Main {
public static void main(String[] args) {
Scanner Lee; // para leer los datos de entrada
int n; // numero de grupos
int i; // para los bucles
int c; // contador de taxis
int sum1, sum2, sum3, sum4; // sumamos los grupos de 1 a 4 estudiantes
byte aux; // un auxiliar
// AQUI INICIA EL PROGRAMA
Lee = new Scanner(System.in);
while (Lee.hasNext()) {
// leemos los datos
n = Lee.nextInt();
sum1 = sum2 = sum3 = sum4 = 0;
for (i = 0; i < n; i++) {
aux = Lee.nextByte();
switch (aux) {
case 1:
sum1++;
break;
case 2:
sum2++;
break;
case 3:
sum3++;
break;
default:
sum4++;
break;
}
}
// calculamos los taxis necesarios
c = sum4; // los que necesitan de 4 estudiantes
if (sum3 > sum1) {
// sumamos 3 con 1
c += sum1;
c += (sum3 - sum1);
// sumamos los grupos de a dos
c += Math.ceil((double) sum2 / 2);
} else {
c += sum3;
sum1 -= sum3;
// sumamos los grupos de a dos
c += sum2 >> 1;
// si solo queda un grupo de a dos
if ((sum2 & 1) == 1) {
c++;
sum1 -= 2;
}
// si aun quedan grupos de a 1
if (sum1 > 0)
c += Math.ceil((double) sum1 / 4);
}
// mostramos el resultado
System.out.println(c);
}
}
}
|
Blog dedicado a la publicación de artículos, programas propios, traducciones de Roms de Nes, super Nes y mas, y alguno que otro artículo sobre tecnologia.
Thursday, June 28, 2012
Solución a 158B - Taxi [http://codeforces.com] con Java
Solución a 158B - Taxi [http://codeforces.com] el enlace del problema está en el siguiente link
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment