Problema B Burrito amarrado Entrada: burrito.in Salida: estándar. Máxima memoria: 32 MB Tiempo límite: 10 segundos Descripción Un burro se encuentra en un corral circular de radio R amarrado con una cuerda mágica a un poste situado en el centro del corral. Inicialmente el burro se encuentra junto al poste y comienza a caminar hacia el norte. La cuerda se pone tensa cuando el burro llega a la mitad del camino entre el poste y el corral. En ese momento el burro da vuelta 90º a la derecha y sigue caminando. De nuevo, la cuerda mágica únicamente le permite llegar hasta la mitad del camino entre el punto donde dio vuelta y el corral. Como el burro quiere escapar, continúa caminando de esta manera hasta que por n-ésima vez la cuerda lo obliga a detenerse. Tu trabajo es determinar la distancia entre el burro y el poste en ese momento. Entrada Cada caso de entrada consiste de una línea que contiene dos enteros R y n separados por un espacio (1 ≤ R, n ≤ 10000). La última línea de la entrada contiene dos ceros, ese caso no debe procesarse. Salida Para cada caso de entrada, imprime una línea que contenga la distancia entre el burro y el poste con 2 decimales de precisión. Ejemplo de entrada 120 1 120 4 0 0 Ejemplo de salida 60.00 40.69 Solucion Bueno en este problema se soluciona teniendo en cuenta que habran cuatro casos ya que gira en 0, 90 , 180 , 270 grados. El valor de X y de Y se altera sumando o restan la distancia del punto actual al corral de esta manera y = (y + sqrt(r*r-x*x))/2; x = (x + sqrt(r*r-y*y))/2; y = (y - sqrt(r*r-x*x))/2; x = (x - sqrt(r*r-y*y))/2; de acuerdo a los cuatro casos y a los signos en ellos. finalmente se usa el teorema de pitagoras para mostrar la hipotenusa. #include#include #include using namespace std; int main() { int r; int n; cin >> r; cin >> n; while(r+n!=0 ) { double x=0.0; double y=0.0; while(n--) { if (n%4==1) y = (y + sqrt(r*r-x*x))/2; if (n%4==2) x = (x + sqrt(r*r-y*y))/2; if (n%4==3) y = (y - sqrt(r*r-x*x))/2; if (n%4==0) x = (x - sqrt(r*r-y*y))/2; } cout.precision(2); cout << fixed << sqrt(x*x+y*y) < > r; cin >> n; } }
jueves, 19 de abril de 2012
Burrito Amarrado
Suscribirse a:
Enviar comentarios (Atom)
D q juez es ?¿? ?¿?¿?¿
ResponderEliminarun interno q se realiza en la UMSA
ResponderEliminar