Wednesday, November 21, 2012

Solucion al Problema: 82A - Double Cola [http://codeforces.com] con Java

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

/**
 * 82A - Double Cola [http://codeforces.com]
 * 
 * @author BreakDark
 * @version 1.0 beta
 */
// ACEPTADO!!! xD
public class Main {
    public static void main(String[] args) {
        Scanner Lee; // para leer los datos de entrada
        // lista de los nombres
        String[] nombres = { "Sheldon", "Leonard", "Penny", "Rajesh", "Howard" };
        int n; // para la posición a buscar <=1000000000
        int[] poten = new int[29]; // potencias
        byte i; // para los bucles e indices
        int aux; // variable temporal

        // AQUI INICIA EL PROGRAMA
        // generamos las potencias 5*n*2^n-1
        aux = 1;
        poten[0] = 0;
        for (i = 1; i < 29; i++) {
            poten[i] = poten[i - 1] + 5 * aux;
            aux <<= 1;
        }
        Lee = new Scanner(System.in);
        while (Lee.hasNext()) {
            n = Lee.nextInt();
            i = 0;
            aux = 0;
            while (poten[i] < n) {
                aux = n - poten[i++];
            }
            // calculamos quien esta en la fila
            n = 1 << (i - 1);
            i = 0;
            while (aux > n) {
                aux -= n;
                i++;
            }
            System.out.println(nombres[i]);
        }
    }
}

No comments: