using System;
using System.Collections.Generic;
public class Test
{
static bool Stimmel(List<int> ultetes)
{
for (var i = 0; i < ultetes.Count; i++)
{
int pos = ultetes.IndexOf(ultetes[i] - 1);
if (pos >= 0)
{
int d = Math.Abs(pos - i);
if (d < 2 || d > 3) return false;
}
pos = ultetes.IndexOf(ultetes[i] + 1);
if (pos >= 0)
{
int d = Math.Abs(pos - i);
if (d < 2 || d > 3) return false;
}
}
return true;
}
static List<int> Keres(List<int> elemek,List<int> eddig)
{
if (!Stimmel(eddig))
return null;
if (elemek.Count == 0)
return eddig;
for(int i = 0; i < elemek.Count; i++)
{
int elem = elemek[i];
elemek.Remove(elem);
eddig.Add(elem);
List<int> eredmeny = Keres(elemek, eddig);
if (eredmeny != null)
return eredmeny;
eddig.Remove(elem);
elemek.Insert(i, elem);
}
return null;
}
static void Main(string[] args)
{
List<int> elemek=new List<int>{1,2,3,4};
List<int> eredmeny = Keres(elemek, new List<int>());
if (eredmeny != null)
{
Console.Write(eredmeny[0]);
for (int i = 1; i < eredmeny.Count; i++)
Console.Write(", " + eredmeny[i]);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIHN0YXRpYyBib29sIFN0aW1tZWwoTGlzdDxpbnQ+IHVsdGV0ZXMpCiAgICB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1bHRldGVzLkNvdW50OyBpKyspCiAgICAgICAgewogICAgICAgICAgICBpbnQgcG9zID0gdWx0ZXRlcy5JbmRleE9mKHVsdGV0ZXNbaV0gLSAxKTsKICAgICAgICAgICAgaWYgKHBvcyA+PSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQgZCA9IE1hdGguQWJzKHBvcyAtIGkpOwogICAgICAgICAgICAgICAgaWYgKGQgPCAyIHx8IGQgPiAzKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcG9zID0gdWx0ZXRlcy5JbmRleE9mKHVsdGV0ZXNbaV0gKyAxKTsKICAgICAgICAgICAgaWYgKHBvcyA+PSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQgZCA9IE1hdGguQWJzKHBvcyAtIGkpOwogICAgICAgICAgICAgICAgaWYgKGQgPCAyIHx8IGQgPiAzKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgc3RhdGljIExpc3Q8aW50PiBLZXJlcyhMaXN0PGludD4gZWxlbWVrLExpc3Q8aW50PiBlZGRpZykKICAgIHsKICAgICAgICBpZiAoIVN0aW1tZWwoZWRkaWcpKQogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICBpZiAoZWxlbWVrLkNvdW50ID09IDApCiAgICAgICAgICAgIHJldHVybiBlZGRpZzsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgZWxlbWVrLkNvdW50OyBpKyspCiAgICAgICAgewogICAgICAgICAgICBpbnQgZWxlbSA9IGVsZW1la1tpXTsKICAgICAgICAgICAgZWxlbWVrLlJlbW92ZShlbGVtKTsKICAgICAgICAgICAgZWRkaWcuQWRkKGVsZW0pOwogICAgICAgICAgICBMaXN0PGludD4gZXJlZG1lbnkgPSBLZXJlcyhlbGVtZWssIGVkZGlnKTsKICAgICAgICAgICAgaWYgKGVyZWRtZW55ICE9IG51bGwpCiAgICAgICAgICAgICAgICByZXR1cm4gZXJlZG1lbnk7CiAgICAgICAgICAgIGVkZGlnLlJlbW92ZShlbGVtKTsKICAgICAgICAgICAgZWxlbWVrLkluc2VydChpLCBlbGVtKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgewogICAgICAgIExpc3Q8aW50PiBlbGVtZWs9bmV3IExpc3Q8aW50PnsxLDIsMyw0fTsKICAgICAgICBMaXN0PGludD4gZXJlZG1lbnkgPSBLZXJlcyhlbGVtZWssIG5ldyBMaXN0PGludD4oKSk7CiAgICAgICAgaWYgKGVyZWRtZW55ICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBDb25zb2xlLldyaXRlKGVyZWRtZW55WzBdKTsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBlcmVkbWVueS5Db3VudDsgaSsrKQogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZSgiLCAiICsgZXJlZG1lbnlbaV0pOwogICAgICAgIH0KICAgIH0KfQ==