using System.Collections.Generic;
public static void Main()
Console.WriteLine(CheckSectionsIntersect(new []{"U","L","D","D","R","U"},6));
Console.WriteLine(CheckSectionsIntersect(new []{"D","L","U","L"},4));
Console.WriteLine(CheckSectionsIntersect(new []{"D","L","L","R"},4));
static Dictionary<string,(int X,int Y)> transforms = new Dictionary<string, (int X, int Y)>{
static bool CheckSectionsIntersect(string[] sectionDirection, int numberOfSections)
(int X, int Y) pos = (0,0);
var visited = new List<(int X, int Y)>{ pos };
for(var i = 0;i<numberOfSections;i++)
if(!transforms.TryGetValue(sectionDirection[i], out var transform))
throw new ArgumentException("sectionDirections");
(int X, int Y) newPos = (pos.X + transform.X, pos.Y + transform.Y);
if(visited.Contains(newPos))