using System;
using System.Collections.Generic;
namespace problem_4
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Antal instruktioner ? ");
int antalInstruktioner = int.Parse(Console.ReadLine());
object[] inputs = new object[antalInstruktioner];
for(int i = 0; i < antalInstruktioner; i++)
{
Console.WriteLine("Instruktion " + (i + 1) + " ? ");
inputs[i] = Console.ReadLine();
}
int x = 0;
int y = 0;
int grader = 0;
for(int i = 0; i< antalInstruktioner; i++)
{
if (inputs[i].ToString() == "H")
{
grader += 90;
}
else if(inputs[i].ToString() == "V")
{
grader -= 90;
}
else
{
if(grader == 90 || grader == -270)
{
x += int.Parse(inputs[i].ToString());
}
else if(grader == 180 || grader == -180)
{
y -= int.Parse(inputs[i].ToString());
}
else if(grader == 270 || grader == -90)
{
x -= int.Parse(inputs[i].ToString());
}
else if(grader == 0 || grader == 360 || grader == -360)
{
y += int.Parse(inputs[i].ToString());
grader = 0;
}
}
}
List<object> outputs = cleanInputs(x, y);
Console.WriteLine("Ny List :");
for(int i = 0; i<outputs.Count; i++)
{
Console.WriteLine(outputs[i].ToString());
}
}
static List<object> cleanInputs(int x,int y)
{
List<object> instruktioner = new List<object>();
if(y < 0)
{
if(x < 0)
{
instruktioner.Add("V");
instruktioner.Add(0 - x);
instruktioner.Add("V");
instruktioner.Add(y*-1);
}
else if(x > 0)
{
instruktioner.Add("H");
instruktioner.Add(x);
instruktioner.Add("H");
instruktioner.Add(y*-1);
}
else if(x == 0)
{
instruktioner.Add("V");
instruktioner.Add("V");
instruktioner.Add(y*-1);
}
}
else if(y > 0)
{
if(x < 0)
{
instruktioner.Add(y);
instruktioner.Add("V");
instruktioner.Add(x*-1);
}
else if(x > 0)
{
instruktioner.Add(y);
instruktioner.Add("H");
instruktioner.Add(x);
}
else if(x == 0)
{
instruktioner.Add(y);
}
}
else if(y == 0)
{
if(x > 0)
{
instruktioner.Add("H");
instruktioner.Add(x);
}
else if(x < 0)
{
instruktioner.Add("V");
instruktioner.Add(x*-1);
}
}
return instruktioner;
}
}
}