import java.util.Scanner;
/**
* Solución al problema: 10003 - Burrito Amarrado [http://acm.cs.buap.mx]
*/
/**
* @author BreakDark (Jhonny Monrroy)
* @version 2.0 b 18 feb. 2017
*/
// ACEPTADO!!! xD
public class Main {
public static void main(String[] args) {
Scanner Lee; // para los datos de entrada
int r, n; /// radio y numero de intentos
// AQUI INICIA EL PROGRAMA
Lee = new Scanner(System.in);
do {
r = Lee.nextInt();
n = Lee.nextInt();
if (r != 0 && n != 0)
System.out.println(obtenerSolucion(r, n));
} while (Lee.hasNext() && r != 0 && n != 0);
Lee.close();
}
/**
* Metodo que obtiene la solucion del problema
*
* @param r
* Radio del corral
* @param n
* Numero de intentos
* @return Un String que representa la distancia del burrito al poste
*/
public static String obtenerSolucion(int r, int n) {
double x = 0, y = 0; // coordenadas del burrito
byte dir = 0; // 0=norte, 1=este, 2=sur, 3=oeste
while (n-- > 0) {
switch (dir) {
case 0: // norte
y = (y + Math.sqrt(r * r - x * x)) / 2;
break;
case 1: // este
x = (x + Math.sqrt(r * r - y * y)) / 2;
break;
case 2: // sur
y = (y - Math.sqrt(r * r - x * x)) / 2;
break;
default: // oeste
x = (x - Math.sqrt(r * r - y * y)) / 2;
dir = -1; // para volver a empezar desde el principio
break;
}
dir++;
}
// mostramos el resultado
return String.format("%.2f", Math.sqrt(x * x + y * y)).replace(',', '.');
}
}
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.
Saturday, February 25, 2017
Solución al problema: 10003 - Burrito Amarrado [http://acm.cs.buap.mx] con Java
Para ver el link del problema Click aqui
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment