void
Main()
{
for
(
int
q1 = 1; q1 <= 4; q1++)
{
for
(
int
q2 = 1; q2 <= 4; q2++)
{
for
(
int
q3 = 1; q3 <= 4; q3++)
{
for
(
int
q4 = 1; q4 <= 4; q4++)
{
for
(
int
q5 = 1; q5 <= 4; q5++)
{
if
((q2 == 1 && q5 != 3) ||
(q2 == 2 && q5 != 4) ||
(q2 == 3 && q5 != 1) ||
(q2 == 4 && q5 != 2))
{
continue
;
}
if
(q4 == 1 && q1 != q5)
{
continue
;
}
if
(q5 == 2 && q5 != q4)
{
continue
;
}
for
(
int
q6 = 1; q6 <= 4; q6++)
{
if
((q3 == 1) && (q3 == q6 || q3 == q2 || q3 == q4))
{
continue
;
}
if
((q3 == 2) && (q6 == q3 || q6 == q2 || q6 == q4))
{
continue
;
}
if
((q3 == 3) && (q2 == q3 || q2 == q6 || q2 == q4))
{
continue
;
}
if
((q3 == 4) && (q4 == q3 || q4 == q6 || q4 == q2))
{
continue
;
}
for
(
int
q7 = 1; q7 <= 4; q7++)
{
if
(q4 == 2 && q2 != q7)
{
continue
;
}
if
(q5 == 4 && q5 != q7)
{
continue
;
}
for
(
int
q8 = 1; q8 <= 4; q8++)
{
if
(q5 == 1 && q5 != q8)
{
continue
;
}
if
(q6 == 1 && ((q2 != q4 || q4 != q8 || q2 != q8)))
{
continue
;
}
if
(q6 == 2 && ((q1 != q6 || q1 != q8 || q6 != q8)))
{
continue
;
}
if
((q8 == 1 && (Math.Abs(q7 - q1) == 1)) ||
(q8 == 2 && (Math.Abs(q5 - q1) == 1)) ||
(q8 == 3 && (Math.Abs(q2 - q1) == 1)))
{
continue
;
}
for
(
int
q9 = 1; q9 <= 4; q9++)
{
if
(q4 == 3 && q1 != q9)
{
continue
;
}
if
(q5 == 3 && q5 != q9)
{
continue
;
}
if
(q6 == 4 && ((q5 != q9 || q5 != q8 || q9 != q8)))
{
continue
;
}
if
(q9 == 1 && ((q1 == q6) == (q6 == q5)))
{
continue
;
}
if
(q9 == 3 && ((q1 == q6) == (q2 == q5)))
{
continue
;
}
if
(q9 == 4 && ((q1 == q6) == (q9 == q5)))
{
continue
;
}
for
(
int
q10 = 1; q10 <= 4; q10++)
{
if
(q4 == 4 && q6 != q10)
{
continue
;
}
if
(q6 == 3 && ((q3 != q10 || q3 != q8 || q10 != q8)))
{
continue
;
}
if
(q8 == 4 && (Math.Abs(q10 - q1) == 1))
{
continue
;
}
if
(q9 == 2 && ((q1 == q6) == (q10 == q5)))
{
continue
;
}
int
[] a = { q1, q2, q3, q4, q5, q6, q7, q8, q9, q10 };
int
repeat_max = a.GroupBy(s => s).OrderByDescending(s => s.Count()).Select(s => s.Count()).First();
int
repeat_min = a.GroupBy(s => s).OrderByDescending(s => s.Count()).Select(s => s.Count()).Last();
int
repeat_min_item = a.GroupBy(s => s).OrderByDescending(s => s.Count()).Last().Key;
if
((q10 == 1 && (repeat_max - repeat_min) != 3) ||
(q10 == 2 && (repeat_max - repeat_min) != 2) ||
(q10 == 3 && (repeat_max - repeat_min) != 4) ||
(q10 == 4 && (repeat_max - repeat_min) != 1))
{
continue
;
}
if
((q7 == 1 && repeat_min_item != 3) ||
(q7 == 2 && repeat_min_item != 2) ||
(q7 == 3 && repeat_min_item != 1) ||
(q7 == 4 && repeat_min_item != 4))
{
continue
;
}
Console.WriteLine(q1);
Console.WriteLine(q2);
Console.WriteLine(q3);
Console.WriteLine(q4);
Console.WriteLine(q5);
Console.WriteLine(q6);
Console.WriteLine(q7);
Console.WriteLine(q8);
Console.WriteLine(q9);
Console.WriteLine(q10);
Console.WriteLine(
"====================================="
);
}
}
}
}
}
}
}
}
}
}
}