Witam, napisałem rozwiązanie zadania MOONWALK, lecz z jakiegoś powodu SPOJ daje mi WA.
Czy ktoś mógłby wskazać mi mój błąd?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace dance
{
class Program
{
static void Main(string[] args)
{
Int64 cases = Int64.Parse(Console.ReadLine());
for (Int64 i = 0; i < cases; i++)
{
Int64 x = 0;
Int64 y = 0;
bool res = false;
Int64[] xs = new Int64[100];
Int64[] ys = new Int64[100];
string[] data = Console.ReadLine().Split(' ');
Int64 targetx = Int64.Parse(data[0]);
Int64 targety = Int64.Parse(data[1]);
char[] moves = data[2].ToCharArray();
if (targetx == 0 && targety == 0)
{
res = true;
}
else
{
for (Int64 j = 0; j < moves.Length; j++)
{
switch (moves[j])
{
case 'G':
y++;
break;
case 'D':
y--;
break;
case 'P':
x++;
break;
case 'L':
x--;
break;
}
xs[j] = x;
ys[j] = y;
}
for (Int64 k = 0; k < moves.Length; k++)
{
//if ((targetx - xs[k]) % x == 0 && (targety - ys[k] )% y == 0)
//{
// if ((targetx - xs[k]) / x == (targety - ys[k]) / y)
// {
// if ((targetx - xs[k]) / x >= 0 && (targety - ys[k]) / y>=0)
// {
if ((targetx - xs[k]) * y == (targety - ys[k]) * x)
{
if (((targetx - xs[k]) >= 0 && x >= 0) || ((targetx - xs[k]) <= 0 && x <= 0))
{
res = true;
break;
}
}
// }
// }
//}
}
}
if (res)
{
Console.WriteLine("TAK");
}
else
{
Console.WriteLine("NIE");
}
}
}
}
}
Z góry dziękuję...