Dzień dobry,
próbuję rozwiązać zadanie ze SPOJ'a => http://pl.spoj.com/problems/HILLS2/ lecz sędzia nie akceptuje mi wyniku. W związku z tym chciałbym wiedzieć, gdzie popełniam błąd. Jeżeli mógłbym prosić o pomoc w znalezieniu go to proszę. Niżej wklejam kod, jeszcze jedna istotna sprawa : Czy sposób rozwiązania ( sama metoda ) jest dobra ?
Pozdrawiam
using System;
namespace ConsoleApplication1
{
class Program
{
static double ToAngleMultiply = 2*Math.PI / 360;
static double angle = 0;
static double x = 0, y = 0;
static void Main(string[] args)
{
int t = int.Parse(Console.ReadLine());
for (int i = 0; i < t; i++)
{
int k1 = int.Parse(Console.ReadLine());
string s;
for(int j=0;j<k1;j++)
{
s = Console.ReadLine();
switch (s.Split(' ')[0])
{
case "MOVE":
x += Math.Sin(ToAngleMultiply * angle) * double.Parse(s.Split(' ')[1]);
y += Math.Cos(ToAngleMultiply * angle) * double.Parse(s.Split(' ')[1]);
break;
case "TURN":
angle += double.Parse(s.Split(' ')[1]);
break;
case "PREPARE":
{ x = 0; y = 0; angle = 0; }
break;
}
}
string answer =Convert.ToString(Math.Abs((double)Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2))));
if (answer.Split(',').Length == 1)
answer += ".00";
else if (answer.Split(',')[1].Length == 1)
answer += "0";
else if (answer.Split(',')[1].Length > 2)
answer = answer.Split(',')[0] + ","+answer.Split(',')[1][0] + answer.Split(',')[1][1];
Console.WriteLine(answer.Replace(',','.'));
}
}
}
}