Let cba(odometer reading at the end of the trip)-abc(odometer reading at the start of the trip)=xyz(the number of miles traveled).
Since cba is greater than abc, c>a. Henceforth, we will denote the larger number (cba) as LN and the smaller number (abc) as SN. While subtracting SN from LN, we will first have to subtract the 10ths digit of SN (which is 'c') from the 10ths digit of of LN (which is 'a') to get 'z' (the 10ths digit of xyz). Since c>a, 'z' is equal to [(a+10)-c].
Now, xyz=55k (where k is any positive integer). So xyz could be 55*1=55, 55*2=110, 55*3=165 and so on. That is, 'z' must be either 5 or 0. But it can't be 0 because, in that case, c=a which is not possible they are two distinct digits. So z=5. Thus, (a+10-c)=5 or (c-a)=5. The highest value that 'c' could have is 6 because if it is 7 then 'a' has to be 2 and even if 'b' is 0, (a+b+c) becomes 9 which is not possible because it is given that (a+b+c) cannot be more than 7. Also, 'c' cannot be less than 6 because that would make (c-a) less than 5. Therefore, the only possibilities which satisfies all the conditions are: c=6, a=1 and b=0. So, cba- abc=601-106=495=55*9. Thus, a^2+b^2+c^2=1^2+0^2+6"2=1+36=37. Ans: C