How do I learn to solve hard elementary geometry problems (the ones don't involve complex trig or heavy coordinate based calculation)?
Those problems are difficult, not because I don't know the theorems, but because they require flexible thinking. For example, maybe I need to notice that the two sides' lengths are in fact, the same.
Those solutions simply don't come to me, and even after reading editorials, I still can't figure out the process which brought them to the solution. (I'm like, "Why did you think it is a good idea to draw lines there?")
What should I do to develop problem-solving skills and where can I do training? Ultimately, I want to be able to solve the IMO level problems.
Any tips and advice will be appreciated.
You are trying to improve your problem solving skills and there's a simple way to do that: Solve more and more problems. When I started learning geometry(similar triangles, more specifically), I remember in most of the problems you had to draw a line parallel to say $AB$, then use the side splitter theorem to find the length of some side, the ratio of $\frac{AB}{BC}$, etc. Back then, I had no idea how one might come up with a solution like that but now, when I see a question that involves similar triangles, I try using the side splitter theorem which might work, or I might have to use another approach.
What I'm trying to say is, the more problems you solve, the better you get at those types of problems. But beware, for more complicated questions, just elementary geometry will not suffice and you'll need more theory but for basic question, elementary geometry is adequate.
And last but not least, I would suggest if you didn't understand a part of the solution(not how the author got there, but the solution itself), ask your question here.