This position was reached in a normal chess game:
BLACK
+---+---+---+---+---+---+---+---+
| B |///| K |/R/| N |///| |///|
+---+---+---+---+---+---+---+---+
|/P/| P |///| |///| |///| |
+---+---+---+---+---+---+---+---+
| |///| Q |/K/| |/R/| |///|
+---+---+---+---+---+---+---+---+
|///| |///| |///| |///| |
+---+---+---+---+---+---+---+---+
| |///| |///| |///| |///|
+---+---+---+---+---+---+---+---+
|///| |///| |///| |///| |
+---+---+---+---+---+---+---+---+
| |///| |///| |///| |///|
+---+---+---+---+---+---+---+---+
|///| |///| |///| |///| |
+---+---+---+---+---+---+---+---+
WHITE
a) Identify the color of each piece.
b) What was the last move?
Eric's solution is correct, as far as it went.
The queen and the d8-rook must be the same color, else both kings are in check which is impossible. Thus, one of the kings is in double check. The only way this can be is if the king on c8 is black, and the d8-rook and queen and the other king are all white, with the last move being P(c7)xd8(R), capturing whatever black piece was at d8. This means the pawn at b7 must be black or the black king would already have been in check before white's last move, which is not allowed. This in turn means that the only way a bishop could be at a8 is for it to have been promoted from a pawn that came from a7, making it white. The pawn currently at A7 must also be white (a black pawn would have blocked the path of that pawn that became a bishop), and followed the other pawn up to its current position. The knight at E8 must be white; otherwise the white king would be in check, which can't be since black's king is in check. Similarly, the f6-rook must be white.