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:
Post a Comment