Wednesday, November 21, 2012

Solucion al Problema: 148A - Insomnia cure [http://codeforces.com] con Java

Solucion al Problema: 148A - Insomnia cure [http://codeforces.com] con Java
El link del Problema se encuentra en el siguiente enlace
import java.util.BitSet;
import java.util.Scanner;

/**
 * Solucion al Problema: 148A - Insomnia cure [http://codeforces.com]
 * 
 * @author BreakDark
 * @version 1.0.1 beta 11/11/2012
 */
// ACEPTADO!!! xD
public class Main {
    public static void main(String[] args) {
        Scanner Lee; // para leer los datos
        byte k, l, m, n; // los -th a los que lastimo
        int d; // el total de dragones

        // AQUI INICIA EL PROGRAMA
        Lee = new Scanner(System.in);
        while (Lee.hasNext()) {
            // leemos los datos
            k = Lee.nextByte();
            l = Lee.nextByte();
            m = Lee.nextByte();
            n = Lee.nextByte();
            d = Lee.nextInt();
            // resolvemos el problema
            procesar(k, l, m, n, d);
        }
    }

    /**
     * Metodo que resuelva este problema
     * 
     * @author BreakDark
     * @version 1.0.1 beta 11/11/2012
     * @param k
     *            golpeados con la sarten en la cara
     * @param l
     *            con las colas apretadas con la puerta
     * @param m
     *            con las patas pisadas por los tacones de la princesa
     * @param n
     *            a los acusados con su mama :)
     * @param d
     *            total de dragones
     */
    private static void procesar(byte k, byte l, byte m, byte n, int d) {
        BitSet dragones = new BitSet(d); // total de dragones
        int i; // para los bucles

        // marcamos a los k
        for (i = k - 1; i < d; i += k)
            dragones.set(i);
        // marcamos a los l
        for (i = l - 1; i < d; i += l)
            dragones.set(i);
        // marcamos a los m
        for (i = m - 1; i < d; i += m)
            dragones.set(i);
        // marcamos a los n
        for (i = n - 1; i < d; i += n)
            dragones.set(i);
        // mostramos el numero de dragones lastimados
        System.out.println(dragones.cardinality());
    }
}

No comments: