No. I can't. Because I'm too stupid. And even thogh there is probably a solution to this puzzle, I consider this a valid answer

Seriously, though, I can't see a way, and I don't see where my logic is flawed, so I might just as well post what I've come up with:

×You know, let's just ignore the nature of these questions for the moment and tackle it from a more abstract point of view.

Let's ignore that we don't know what 'ya' and 'da' mean and assume there's some way for us to find out. Still, we only get three answers, all three of them being either y or d. This means there's a total of 2^3=8 possible outcomes to our questions.

Since we do need to find out this time excactly who's who, we will have to be able to tell the order in which we've asked the three guys, at least once we're done. Since there are three of them, there's 3!=6 possible orders.

So we have 8 possible outcomes, and we must be able to attribute each of them uniquely to one order. Since there's only 6 of them, this should be possible.

But wait! What about those cases where the guys choose randomly?

Let's abbreviate Past with <

, Present with v and Future with >

and consider the following three cases:

< v >
< > v
v < >

In case 2 and 3, one person will answer randomly, and in the first case even two. And, if I got it right, it's really a fifty-fifty-choice between y and d this time. This means that there must be two possible outcomes for case two and three and even four for case one. Which, in return, means that there are now, in some way, 11 cases.

Since we only have a set of 8 outcomes, though, it should be impossible to uniquely attribute one outcome to one order.

I would be kind of surprised if this was actually the correct solution, but right now I don't see the flaw in my reasoning. As always, I'll be happy to be proven wrong

.