Subcontests
(5)moving pieces in hexagonal grid
Let n be an integer greater than or equal to 2. There is a regular hexagon ABCDEF with side length n, which is divided into equilateral triangles with side length 1 as shown in the left figure. We simply call the vertices of an equilateral triangle as vertex.
A piece is placed in the center of a regular hexagon ABCDEF. For each of the vertices P inside ABCDEF (not including the perimeter), an arrow is drawn toward 4 vertices four of the six vertices connected to P by an edge of length 1. When a piece is placed on the vertex P, this piece can be moved to any of the four vertices which the arrow is drawn. Regarding side PQ, even if a piece can be moved from vertex P to vertex Q, it is not necessarily possible to move a piece from vertex Q to vertex P.
Then, show that there exists an integer k such that it can be moved the piece to vertices on the perimeter of the regular hexagon ABCDEF in k moves regardless of how the arrows are drawn and find the smallest possible value of k.[asy]
unitsize(0.3 cm);pair[] A, B, C, D, E, F;
int i;
pair trans = (18,-4);A[0] = 8*dir(120);
B[0] = 8*dir(180);
C[0] = 8*dir(240);
D[0] = 8*dir(300);
E[0] = 8*dir(0);
F[0] = 8*dir(60);for (i = 1; i <= 7; ++i) {
A = interp(A[0],B[0],i/8);
B = interp(B[0],C[0],i/8);
C = interp(C[0],D[0],i/8);
D = interp(D[0],E[0],i/8);
E = interp(E[0],F[0],i/8);
F = interp(F[0],A[0],i/8);
}draw(A[0]--B[0]--C[0]--D[0]--E[0]--F[0]--cycle);for (i = 0; i <= 5; ++i) {
draw(rotate(60*i)*(A[0]--(A[0] + 3*dir(-60))));
draw(rotate(60*i)*(A[1]--(A[1] + 3*(1,0))));
draw(rotate(60*i)*(A[1]--(A[1] + 3*dir(300))));
draw(rotate(60*i)*(A[2]--(A[2] + 4*(1,0))));
draw(rotate(60*i)*(F[6]--(F[6] + 4*dir(240))));
draw(rotate(60*i)*(F[7]--(F[7] + 3*dir(240))));
draw(rotate(60*i)*(F[7]--(F[7] + 3*dir(300))));
draw(rotate(60*i)*((A[1] + 3*(1,0))--(A[1] + 6*(1,0))), dotted);
draw(rotate(60*i)*((A[2] + 4*(1,0))--(A[2] + 6*(1,0))), dotted);
}for (i = 0; i <= 2; ++i) {
draw(rotate(60*i)*(3*dir(60)--3*dir(240)));
}for (i = 0; i <= 5; ++i) {
draw(rotate(60*i)*(((2,0) + dir(60))--((-2,0) + dir(120))));
draw(rotate(60*i)*((3,0)--(5,0)), dotted);
draw(rotate(60*i)*(((2,0) + dir(60))--((4,0) + dir(60))), dotted);
draw(rotate(60*i)*(((2,0) + dir(-60))--((4,0) + dir(-60))), dotted);
}label("A", A[0], NW);
label("B", B[0], W);
label("C", C[0], SW);
label("D", D[0], SE);
label("E", E[0], dir(0));
label("F", F[0], NE);draw(shift(trans)*scale(1.3)*((-3,0)--(9,0)));
draw(shift(trans)*scale(1.3)*((-3*dir(60))--(9*dir(60))));
draw(shift(trans)*scale(1.3)*(((6,0) + 3*dir(-60))--((6,0) + 9*dir(120))));
draw(shift(trans)*scale(1.3)*(3*dir(120)--3*dir(300)));
draw(shift(trans)*scale(1.3)*((6*dir(60) + (-3,0))--(6*dir(60) + (3,0))));
draw(shift(trans)*scale(1.3)*(((6,0) + 3*dir(60))--((6,0) - 3*dir(60))));
draw(shift(trans)*scale(1.3)*((-2,0)--(2,0)), linewidth(1.5*bp), Arrows(4));
draw(shift(trans)*scale(1.3)*(2*dir(60)--2*dir(240)), linewidth(1.5*bp), Arrows(4));
draw(shift(trans)*scale(1.3)*((6,0)--(8,0)), linewidth(1.5*bp), Arrow(4));
draw(shift(trans)*scale(1.3)*((6,0)--((6,0) + 2*dir(60))), linewidth(1.5*bp), Arrow(4));
draw(shift(trans)*scale(1.3)*((6,0)--((6,0) + 2*dir(240))), linewidth(1.5*bp), Arrow(4));
draw(shift(trans)*scale(1.3)*((6,0)--((6,0) + 2*dir(300))), linewidth(1.5*bp), Arrow(4));
draw(shift(trans)*scale(1.3)*(6*dir(60)--(6*dir(60) + (2,0))), linewidth(1.5*bp), Arrow(4));
draw(shift(trans)*scale(1.3)*(6*dir(60)--(6*dir(60) + 2*dir(120))), linewidth(1.5*bp), Arrow(4));
draw(shift(trans)*scale(1.3)*(6*dir(60)--(6*dir(60) + (-2,0))), linewidth(1.5*bp), Arrow(4));
draw(shift(trans)*scale(1.3)*(6*dir(60)--(6*dir(60) + 2*dir(240))), linewidth(1.5*bp), Arrow(4));
[/asy] 4 concyclic points
Scalene triangle ABC has circumcircle Γ and incenter I. The incircle of triangle ABC touches side AB,AC at D,E respectively. Circumcircle of triangle BEI intersects Γ again at P distinct from B, circumcircle of triangle CDI intersects Γ again at Q distinct from C. Prove that the 4 points D,E,P,Q are concyclic.